подключить dll написанную на фортране к vb проекту

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ccraft
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 01.02.2006 (Ср) 21:20

подключить dll написанную на фортране к vb проекту

Сообщение ccraft » 01.02.2006 (Ср) 21:30

Здравствуйте.
Горю, спасите, помогите, помираю...
Есть длл, написанная на фортране, её нужно подключить к вб.
читаю книгу пишут Private Declare Function myfunct Lib "mylib.dll" _
(ByVal a As Integer) бла бла бла
Проблема, точнее проблемы:
1. Необходимо передать в библиотеку супер много переменных, среди которых есть массивы, когда начинаешь описывать переменные в какойто момент вб выдает что слишком много переменных
2. При запуске приложения выдает сообщение о том, что библиотека не найдена....
Спасибо!

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 01.02.2006 (Ср) 21:33

1. Без описания передаваемых в библиотеку переменных ничем не можем помочь. Супер много - это сколько?
2. Библиотеку надо:
а) зарегистрировать через regsvr32 (в поиск)
б) положить в папку с программой, либо в windows/system32

ccraft
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 01.02.2006 (Ср) 21:20

Сообщение ccraft » 01.02.2006 (Ср) 23:15

Ок, клево что так быстро ответили.
Могу кинуть кусок проги на фортране обращающейся к длл
там и описание есть
это вызов функции длл
call Godunov(nr,metod_t,nv0,nvk,ng0,ngk,ngt0,ngtk &
& ,nkomp,nfktr,ngrgaz,ngrtv,nomgrgaz,nomgrgt,ngmax,ntmax,ich &
& ,rg,voL0,voL1,csg,cst,fsg,fst &
& ,ro,u,e,ekin,aLf,aLfktr,p,tg,cps,adb,rLs,rmus,dpdt &
& ,dmgt,dugt,degt,dhgt,dkingt,dcgt,daLfgt,dfktgt,pgt &
& ,dmi,dui,dei,dhi,dkini,dci,daLi,dfki &
& ,rm0,rmu0,rL0,cp0,cv0,rm,rmu,rL,cp,cv &
& ,t_0,t_1)
после dmgt вб начинает ругаться на слишком большое число параметров

это описание переменных, тоже в фортране, могу и в вб кинуть

integer(4) nr,metod,metod_t,nv0,nvk,ng0,ngk,ngt0,ngtk,nkomp,nfktr
integer(4) ngmax,ntmax
integer(4) n
real(8) rm0,rmu0,rL0,cp0,cv0
real(8) t0,tk,dt,t_0,t_1,tau
real(8) aa(3,100)
!
integer(4), dimension(:), allocatable :: ngrgaz,ngrtv
integer(4), dimension(:,:), allocatable :: nomgrgaz,nomgrgt
integer(4), dimension(:,:), allocatable :: ich
real(8), dimension(:), allocatable :: rm,rmu,rL,cp,cv
real(8), dimension(:), allocatable :: voL0,voL1,fsg,fst
real(8), dimension(:,:), allocatable :: csg,cst
real(8), dimension(:,:), allocatable :: rg
real(8), dimension(:), allocatable :: ro,e,ekin,p,tg,adb,cps,rLs,rmus,dpdt
real(8), dimension(:), allocatable :: dmgt,degt,dhgt,dkingt,dcgt,pgt
real(8), dimension(:), allocatable :: dmi,dei,dhi,dkini,dci
real(8), dimension(:,:), allocatable :: u,dugt,dui
real(8), dimension(:,:), allocatable :: aLf,aLfktr,daLfgt,dfktgt,daLi,dfki

dimension(:,:) двумерный массив
allocatable динамический
назначение размеров массивов идет по ходу программы
Спасиба заранее, дллку нашел просто скопировал её в систем 32.

И можно поподробнее как длл зарегистрировать "через regsvr32 (в поиск)"

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 01.02.2006 (Ср) 23:20

2Amed:А ты уверен, что это ActiveX DLL?
2ccraft:А нельзя ли эту самую dll вот сюда положить? А кстати, какая у фортрана конвенция передачи параметров?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

ccraft
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 01.02.2006 (Ср) 21:20

Сообщение ccraft » 01.02.2006 (Ср) 23:40

1. Это длл написанная для расчета двс методом годунова и сомневаюсь что это ActiveX
2. какая у фортрана конвенция передачи параметров?
понятия не имею, но на дэлфи она подключается точно знаю, только вот с дэлфи у меня совсем никак...:(

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 02.02.2006 (Чт) 10:22

Если она не ActiveX(признаться я вообще не уверен, что фортран умеет делать ActiveX Dll) то ни о какой регистрации и речи быть не может.
Ну так может ты нам предоставиш эту библиотеку?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

ccraft
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 01.02.2006 (Ср) 21:20

Сообщение ccraft » 02.02.2006 (Чт) 18:57

Выкладываю исходник и компилированную ддлку
Вложения
Godunov_.rar
(97.54 Кб) Скачиваний: 31

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 02.02.2006 (Чт) 20:01

Ага.
2. При запуске приложения выдает сообщение о том, что библиотека не найдена....

Должна лежать либо в папке с exe-файлом, либо в system32
1. Необходимо передать в библиотеку супер много переменных, среди которых есть массивы, когда начинаешь описывать переменные в какойто момент вб выдает что слишком много переменных

Гм. А ты уверен, что массивы в фортране представляются также как и в VB? Я нет...
И если VB ругается, что параметров слишком много... Может запихнуть все параметры в структуру, а при вызове функции передавать ей указатель на структуру? Ну и соответственно изменить библиотеку?
И еше, есть вератяность того, что
а) у фортрана и у бэйсика функции имеют разную конвенцию передачи данных(хотя это и обходимо...)
б) у фортрана и у бэйсика по разному организованы структуры(а вот что тут делать я не представляю)
В любом случае для начала надо попробовать на функции с меньшим числом параметров. А нето это будет очень долгая басня...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 88

    TopList