Funkcije koje nemaju parametre iz dll rade OK. Problem mi je sa funkcijama koje imaju neke parametre pri pozivanju. Na primer:
c++ kod funkcije iz dll-a:
Code:
extern "C" __declspec(dllexport) int Test(int a){
return a;
}
extern "C" __declspec(dllexport) int Test(int a){
return a;
}
delphi kod:
Code:
function Test(a: Integer): Integer;
stdcall; external 'Test.dll' name 'Test'; // Statichki load funkcije
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
i:= 34;
ShowMessage(IntToStr(Test(i)));
end;
function Test(a: Integer): Integer;
stdcall; external 'Test.dll' name 'Test'; // Statichki load funkcije
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
i:= 34;
ShowMessage(IntToStr(Test(i)));
end;
I ovo radi, pojavi se msgbox, ali chim ga zatvorim pojavi se greshka da ne moze da se pristupi toj i toj memoriskoj lokaciji. Sto ukazuje na problem sa oslobadjanjem memorije. Tako da sam probao i ovo:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
i:= 34;
ShowMessage(IntToStr(Test(i)));
while True do Application.ProcessMessages;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
i:= 34;
ShowMessage(IntToStr(Test(i)));
while True do Application.ProcessMessages;
end;
Tako da se event Click nikada ne zavrshava, i tada se ne javlja greska.
U cemu gresim?
Unapred zahvalan,
Oliver