Страница 1 из 2
Вызов DLL функции из LinkForm
Добавлено: 11 июл 2003, 10:15
renat
допустим есть потребность вызова сложных матеатических расчетов из DLL функций, причем эту функцию надо вызывать из LinkForm.
Кто нибудь сталкивался с такой проблемой? - вызовом самописных DLL из LinkForm ?
Re: Вызов DLL функции из LinkForm
Добавлено: 11 июл 2003, 11:06
forummaster
<HTML>проблемы как таковой нет - вызов функций из внешних Dll реализуется примерно так:
делается объявление внешних функций ( скажем, в отдельном файле myfunc.inc )
myfunc.inc
...
function myfunc( [paramlist] ) : integer ; external 'myfunc.dll' ;
...
в linkform'е делаем вызов этой функции myfunc с указанными параметрами :
mylink.frm
....
var i:integer ;
i := myfunc( [xxx] ) ;
....
собирается все это вместе примерно так - в файле проекта make.prj пишем :
#make 'myfunc.inc'
#make 'mylink.frm'
сам файл myfunc.dll кладем в EXE каталог галактики. для успешной компиляции формы файл myfunc.dll также нужно поместить в текущий каталог проекта.</HTML>
Re: Вызов DLL функции из LinkForm
Добавлено: 11 июл 2003, 12:46
m0p3e
Дополнение:
function myfunc( [paramlist] ) : integer ; external 'myfunc.dll' ;
Можно писать как:
function myfunc( [paramlist] ) : integer ; external 'C:\MyFunc\myfunc.dll' ;
Re: Вызов DLL функции из LinkForm
Добавлено: 11 июл 2003, 14:51
renat
а как обявить функцию которая не взвращает никаких значений?
или фукнцию которая вообще ничего не передает и не получает?
Re: Вызов DLL функции из LinkForm
Добавлено: 11 июл 2003, 15:49
renat
еще один БАГ (или фича?) :
в DLL имена функций написаны маленькими буквами а Галактика хочет большими - пришлось DLL перекомпилировать тогда вроде бы работает
Re: Вызов DLL функции из LinkForm
Добавлено: 11 июл 2003, 18:49
sth
фича. описанная в документации притом.
Re: Вызов DLL функции из LinkForm
Добавлено: 14 июл 2003, 12:00
renat
опять баг или фича?
- Использую вызов функций DLL из .ARD - все нормально
- Пробую в Linkform - не поимает и говорит ...нет такой функции, поля или метода...
Re: Вызов DLL функции из LinkForm
Добавлено: 15 июл 2003, 13:49
renat
кто знает в чем косяк?
передаю в DLL integer значение (любое)
а внутри DLL принимается как 8 и никак иначе... как будто DLL вообще ничего не получает...
кто сталкивался с аналогичной проблемой?
Re: Вызов DLL функции из LinkForm
Добавлено: 20 июл 2003, 16:25
dz
Kyokushin
если приведете текст длл-функции и её вызова то знатоки (эт не про меня) помогут \ наверна
Re: Вызов DLL функции из LinkForm
Добавлено: 04 авг 2003, 08:44
kostya_100
Возможно Integer в Delphi это не то же самое, что Integer в Галактике
Посмотрите здесь, может поможет чем ...
Добавлено: 07 авг 2003, 06:53
OlleUp
www.galaktika-dv.ru
В разделе Форум и статьи
еще думаю будет полезно
Добавлено: 13 май 2005, 14:17
GTHack
если dll мутить на паскале (дельфи), то
1. на паскале использовать ShortString а не String
2. для передачи строки в dll юзаем oem2ansi
3. соответственно строковый результат ф-ии конвертим ansi2oem
Добавлено: 18 июл 2005, 09:58
Serges
Возможно Integer в Delphi это не то же самое, что Integer в Галактике
А как насчет остальных типов? Написал dll на Delphi 7, с горем попалам передал в нее тип integer - с помощью функции Oem2Ansi. Обратно получить не могу - ни integer, ни string, ни даже boolean. Точнее, получаю, но совсем не то, что возвращает функция...
Добавлено: 18 июл 2005, 10:19
Goblin
Oem2Ansi(var x:Integer) ???
Оригинально
Кстати , какие математические функции можно сделать во внешней DLL и нельзя в формулах языка ADV, который в галке пользуется для описания мат. формул ?
Добавлено: 18 июл 2005, 10:53
Serges
Goblin писал(а):Oem2Ansi(var x:Integer) ???
Оригинально
Именно! MyFunc(Oem2Ansi(1)) - в DLL передается 1, а если MyFunc(1) - передается какая-то ерунда