Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Speicherfreigabe in Delphi DLL (Aufruf aus Java)

  Alt 15. Nov 2009, 09:22
Zitat von himitsu:
Es ist einfach immer derjenige für die Freigabe des Speicher zuständig, welcher diesen auch reserviert hat.

Wenn jetzt die Delphi-DLL speicher reserviert und diesen an Java abgibt, dann erstellt man einfach eine GibSpeicherFrei-Prozedur und exportiert diese.
Ok, also zum Beispiel so (frei nach http://www.codexterity.com/memmgr.htm)

Delphi-Quellcode:
function Echo(const Arg: PChar): PChar; stdcall;
var
  Tmp: string;
begin
  Tmp := Arg + ' Echo';
  Result := StrAlloc(Length(Tmp));
  StrCopy(Result, PChar(Tmp));
end;

procedure FreeEcho(Arg: PChar);
begin
  StrDispose(Arg);
end;
Die zweite Möglichkeit (Aufrufer fragt DLL zuerst wieviel Speicher reserviert werden soll) schaue ich mir dann noch an...
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat