Einzelnen Beitrag anzeigen

Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: Billiger Datenaustausch zwischen Anwendungen und DLL's

  Alt 22. Dez 2011, 13:46
Delphi-Quellcode:
   ms := TMemoryStream.Create;
   isa:=TStreamAdapter.Create(ms);
   try
[...]
   finally
     isa.Free;
     ms.Free;
   end;
Nur in Bezug auf das Try-Finally-Konstrukt. Wenn im Constructor von TStreamAdapter etwas schief geht, wird ms nicht freigegeben. Daher würde das so machen:
Delphi-Quellcode:
   
   ms := nil;
   isa := nil;
   try
   ms := TMemoryStream.Create;
   isa:=TStreamAdapter.Create(ms);
[...]
   finally
     isa.Free;
     ms.Free;
   end;
Da .Free auf nil prüft ist so sichergestellt, dass immer beides freigegeben wird.

Von dem Rest hab ich keine Ahnung.
Jens
  Mit Zitat antworten Zitat