Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.47 MB
Время: 0.041 c
14-1132560471
Карелин Артем
2005-11-21 11:07
2005.12.11
Приколы в Д7


2-1132604672
novichok
2005-11-21 23:24
2005.12.11
Помогите пожалуйста с ProgressBar


4-1129026072
Alex_Korn
2005-10-11 14:21
2005.12.11
Размер стека


8-1121037044
Yura32
2005-07-11 03:10
2005.12.11
OpenGL


14-1132340918
Crazy_Diman
2005-11-18 22:08
2005.12.11
FastDIB