OK, also hatte ich recht und das Leak kann einfach geschlossen werden, indem man die Funktion eien String zurückliefern lässt und den PAnsiChar noch in der Funktion frei gibt.
Nochmal! Ich kann keinen string zurückgeben die
DLL kann auch mit anderen Developer Sprachen verwendet werden.
Selbst wenn du recht hast was ich dir nicht absprechen will.
Ich rede nicht davon, einen String aus der
DLL zurückzuliefern, das kann weiterhin ein PAnsiChar sein, sondern aus der Funktion, die die
DLL aufuft.
Delphi-Quellcode:
function GetExportPtr(Path, Delimiter): string;
var
strExport: string;
begin
// [...]
ExportPtr := AnsiStrAlloc(Length(strExport) + 1);
CopyMemory(ExportPtr, PAnsiChar(AnsiString(strExport)), Length(strExport) + 1);
Result := ExportPtr;
StrDispose(ExportPtr);
end;
Probier's aus, das Leak wird weg sein.