Вызов DLL функции из LinkForm
Модераторы: m0p3e, edward_K, Модераторы
Вызов DLL функции из LinkForm
допустим есть потребность вызова сложных матеатических расчетов из DLL функций, причем эту функцию надо вызывать из LinkForm.
Кто нибудь сталкивался с такой проблемой? - вызовом самописных DLL из LinkForm ?
Кто нибудь сталкивался с такой проблемой? - вызовом самописных DLL из LinkForm ?
НЕТ
-
- Посетитель
- Сообщения: 46
- Зарегистрирован: 29 мар 2005, 17:49
Re: Вызов DLL функции из LinkForm
<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>
делается объявление внешних функций ( скажем, в отдельном файле 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
Дополнение:
function myfunc( [paramlist] ) : integer ; external 'myfunc.dll' ;
Можно писать как:
function myfunc( [paramlist] ) : integer ; external 'C:\MyFunc\myfunc.dll' ;
function myfunc( [paramlist] ) : integer ; external 'myfunc.dll' ;
Можно писать как:
function myfunc( [paramlist] ) : integer ; external 'C:\MyFunc\myfunc.dll' ;
Re: Вызов DLL функции из LinkForm
а как обявить функцию которая не взвращает никаких значений?
или фукнцию которая вообще ничего не передает и не получает?
или фукнцию которая вообще ничего не передает и не получает?
НЕТ
Re: Вызов DLL функции из LinkForm
еще один БАГ (или фича?) :
в DLL имена функций написаны маленькими буквами а Галактика хочет большими - пришлось DLL перекомпилировать тогда вроде бы работает
в DLL имена функций написаны маленькими буквами а Галактика хочет большими - пришлось DLL перекомпилировать тогда вроде бы работает
НЕТ
Re: Вызов DLL функции из LinkForm
фича. описанная в документации притом.
Re: Вызов DLL функции из LinkForm
опять баг или фича?
- Использую вызов функций DLL из .ARD - все нормально
- Пробую в Linkform - не поимает и говорит ...нет такой функции, поля или метода...
- Использую вызов функций DLL из .ARD - все нормально
- Пробую в Linkform - не поимает и говорит ...нет такой функции, поля или метода...
НЕТ
Re: Вызов DLL функции из LinkForm
кто знает в чем косяк?
передаю в DLL integer значение (любое)
а внутри DLL принимается как 8 и никак иначе... как будто DLL вообще ничего не получает...
кто сталкивался с аналогичной проблемой?
передаю в DLL integer значение (любое)
а внутри DLL принимается как 8 и никак иначе... как будто DLL вообще ничего не получает...
кто сталкивался с аналогичной проблемой?
НЕТ
Re: Вызов DLL функции из LinkForm
Kyokushin
если приведете текст длл-функции и её вызова то знатоки (эт не про меня) помогут \ наверна
если приведете текст длл-функции и её вызова то знатоки (эт не про меня) помогут \ наверна
-
- Сообщения: 14
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Казахстан
- Контактная информация:
Re: Вызов DLL функции из LinkForm
Возможно Integer в Delphi это не то же самое, что Integer в Галактике
-
- Сообщения: 7
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Хабаровск ООО Новый Атлант
- Контактная информация:
Посмотрите здесь, может поможет чем ...
www.galaktika-dv.ru
В разделе Форум и статьи
В разделе Форум и статьи
-
- Местный житель
- Сообщения: 517
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Новосибирск Новосибирск
- Контактная информация:
еще думаю будет полезно
если dll мутить на паскале (дельфи), то
1. на паскале использовать ShortString а не String
2. для передачи строки в dll юзаем oem2ansi
3. соответственно строковый результат ф-ии конвертим ansi2oem
1. на паскале использовать ShortString а не String
2. для передачи строки в dll юзаем oem2ansi
3. соответственно строковый результат ф-ии конвертим ansi2oem
А как насчет остальных типов? Написал dll на Delphi 7, с горем попалам передал в нее тип integer - с помощью функции Oem2Ansi. Обратно получить не могу - ни integer, ни string, ни даже boolean. Точнее, получаю, но совсем не то, что возвращает функция...Возможно Integer в Delphi это не то же самое, что Integer в Галактике
-
- Местный житель
- Сообщения: 474
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Сибирь-матушка
- Контактная информация:
Oem2Ansi(var x:Integer) ???
Оригинально
Кстати , какие математические функции можно сделать во внешней DLL и нельзя в формулах языка ADV, который в галке пользуется для описания мат. формул ?
Оригинально
Кстати , какие математические функции можно сделать во внешней DLL и нельзя в формулах языка ADV, который в галке пользуется для описания мат. формул ?
Питаю патологические отвращение и ненависть в особо тяжелой и крайне запущенной формах к семейству программ Microsoft Business Solution !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !