Einzelnen Beitrag anzeigen

venice2
(Gast)

n/a Beiträge
 
#7

AW: ReportMemoryLeaksOnShutDown

  Alt 21. Jun 2020, 12:19
Delphi-Quellcode:
function ExpFindFolders(Path: PAnsiChar; Delimiter:AnsiChar=','): PAnsiChar; stdcall;
begin

  Result := GetExportPtr(Path, Delimiter); // Hier bleibt EurekaLog stehen damit kann ich aber nichts anfangen.
end;
Delphi-Quellcode:
function GetExportPtr(Path, Delimiter): PAnsiChar;
var
  strExport: string;
begin

  // [...]
  ExportPtr := AnsiStrAlloc(Length(strExport) + 1);
  CopyMemory(ExportPtr, PAnsiChar(AnsiString(strExport)), Length(strExport) + 1);
  Result := ExportPtr;
end;
Was verursacht den Leak "AnsiStrAlloc" ?

Ich kann keinen string zurückgeben die DLL kann auch mit anderen Developer Sprachen verwendet werden.
Strings zwischen DLL und Anwendung hin und her schieben ist nicht das wahre.
Es muss ein 'PAnsiChar' oder PWideChar sein.

Geändert von venice2 (21. Jun 2020 um 12:41 Uhr)
  Mit Zitat antworten Zitat