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...