• 2 odgovora
  • 1.636 pregleda
Poblem sa koriscenjem funkcija iz dll-a(vs2008) u Delphi-ju 2k9 27.08.2009. u 08:04 · pre 208 meseci #1
Ovako, napravio sam dll u vs2008 i hocu da ga koristim u delphiju 2009.

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;
}


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;


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;


Tako da se event Click nikada ne zavrshava, i tada se ne javlja greska.

U cemu gresim?

Unapred zahvalan,
Oliver
Re: Poblem sa koriscenjem funkcija iz dll-a(vs2008) u Delphi-ju 2k9 27.08.2009. u 12:14 · pre 208 meseci #2
> 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:

Pokušaj sa cdecl calling konvencijom. Ako ne pomogne onda imaš grešku u samom dllu ili negde u drugom delu programa.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme