Страница 1 из 1

Delphi и DLL?

Добавлено: 01 мар 2006, 18:35
Zhur
Ребята... может я не по теме... но тем не менее Delphi очень тесно связан с InterBase-ом.
Вот, поймал глюк при использовании простейшей функции, хранящейся в DLL. Причем и DLL сам состряпал.
Тут исходник не напишешь, но если кто сможет помочь, то вышлю (200Кб). Позарез надо выяснить, в чем дело... у меня на этом большая библиотека стоит.
И еще...
Кто-нибудь может объяснить чем отличаются эти способы вызова функции из DLL:
1.
function MyFunc(I: Integer): Integer: external 'MY.DLL' name 'MYFUNC';
...
a := MyFunc(b);

2.
type
TMyFunc = function(I: Integer): Integer;
var
MyFunc: TMyFunc;
hDLL: THandle;
begin
hDLL := LoadLibrary('MY.DLL');
MyFunc := TMyFunc(GetProcAddress(hDLL,'MYFUNC'));
FreeLibrary(hDLL);
end;

Кто поможет? А?

Добавлено: 01 мар 2006, 19:45
kdv
но тем не менее Delphi очень тесно связан с InterBase-ом.
примерно как трактор и балерина, то есть НИКАК не связан, вообще.
чем отличаются эти способы вызова
статическая и динамическая линковка, всего лишь. глюк-то в чем?

Re: Delphi и DLL?

Добавлено: 01 мар 2006, 21:08
smu
Zhur писал(а): И еще...
Кто поможет? А?
stdcall; //имеется ?? или другая директива?

Re: Delphi и DLL?

Добавлено: 02 мар 2006, 09:44
Zhur
Спасибо за отзывы.
Да дело в том, что функция возвращает String.
Думаю, что что-то с этим связано.
Директива stdcall - имеется.
Функция свою работу делает нормально... но сразу после ее вызова выходит "Invalid pointer operation".

Добавлено: 02 мар 2006, 09:57
kdv
ок. если функция возвращает string, тогда скажи, что ты читал на тему borlndmm, и вообще, смотрел ли ты в текст комментария в проекте, автоматически создаваемом дельфей при создании dll. :)

Добавлено: 02 мар 2006, 10:36
Zhur
kdv писал(а):что ты читал на тему borlndmm, и вообще, смотрел ли ты в текст комментария в проекте..l. :)
В точку... Только не ругайтесь на мою тупость... Стыдно :(
Ладно... ща прочитаемс.
Большое спасибо.