Текущий архив: 2005.12.11;
Скачать: CL | DM;
ВнизОшибка при работе с dll! Найти похожие ветки
← →
Frozzen (2005-11-20 18:51) [0]Добрый вечер уважаемые!
Потребовалось использовать dll. Не получается работать. Уже создал длл как в примере, все-равно не работает, результат выдает не верный! Где ошибся подскажите?
library MyDll;
uses
SysUtils, Classes;
function MyFunc(aPar1 : Integer; aPar2 : Integer): Integer; stdcall;
begin
Result := aPar1 + aPar2;
end;
exports MyFunc;
begin
end.
Вызываю
var
LibH: THandle;
MyFunc : Function(aPar1 : Integer; aPar2 : Integer):Integer;
d:integer;
begin
@MyFunc := nil;
d := 0;
LibH := LoadLibrary("MyDll.dll");
if LibH >= 32 then begin
@MyFunc := GetProcAddress(LibH,"MyFunc");
if @MyFunc <> nil then
d := MyFunc(1,2)
else ShowMessage("!!!");
ShowMessage(IntToStr(d));
FreeLibrary(LibHandle);
← →
begin...end © (2005-11-20 18:54) [1]> Frozzen (20.11.05 18:51)
> Где ошибся подскажите?
В соглашении о вызове.
> MyFunc : Function(aPar1 : Integer; aPar2 : Integer):Integer;
Добавьте stdcall.
А если DLL не предполагается использовать в приложениях, написанных на других языках, то лучше убрать stdcall -- и там, и там.
← →
Frozzen (2005-11-20 19:03) [2]Спасибо!
Как я это не заметил то...
Страницы: 1 вся ветка
Текущий архив: 2005.12.11;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.042 c