Einzelnen Beitrag anzeigen

daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

Re: Speicherleck bei PChar(XYZ)/Ansistring - FastMM4

  Alt 24. Mär 2010, 12:07
Mach das mal folgender Maßen:

Delphi-Quellcode:

function StrToPChar(SourceStr: Ansistring; var DestStr: pChar): Integer;
begin
  if SourceStr='then
    begin DestStr:=NIL;
          exit;
    end;
  DestStr := StrAlloc(length(SourceStr) + 1); //speicher für DestStr anfordern
  Move(SourceStr[1], DestStr^, length(SourceStr) + 1); //inhalt von SourceStr nach DestStr kopieren
  //fals es keine binärdaten sind dann die abschließende #0 (Stringende)
  DestStr[length(SourceStr)] := #0; //bei DestStr noch ein #0 anhängen
  //falls es doch binärdaten sind ist es besser die Länge zurück zu geben
  result := length(SourceStr);
end;


var
 meinPChar : pChar;
begin
  StrToPChar(Data^.FServiceName,meinPChar);
  ServiceGetStatus(meinPChar);
  StrDispose(meinPChar);
end;
So holst du dir sauber den Speicher für deinen PChar und gibts diesen auch immer wieder frei
Lars
  Mit Zitat antworten Zitat