Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#39

AW: Zugriffsverletzung beim Zerstören der TIniFile-Instanz

  Alt 29. Jan 2021, 18:49
Free prüft selbst ob die Variable bereits nil ist, dann passiert nichts.
TObject(nil).Free; // läuft problemlos
Das ist falsch. Korrigiert mich bitte, wenn es nach Version Delphi 10.1 anders sein sollte.
In meinem 10.2.3 knallt das mit einer AV. In Verbindung mit dem eigenwilligen Create innerhalb des try-except-Block könnte es durchaus sein dass die Variable weder nil noch ein gültiges TIniFile ist.

Ich verwende jedenfalls nie Object.Free sondern immer FreeAndNil(Object). Mir sind solche AVs beim Free auch gut bekannt, die treten gerne mal auf wenn es an anderer Stelle vor dem Free einen Speicherüberlauf gegeben hat.

Noch ein Gedanke: Ist PChar hier überhaupt gleich PChar aus der Hostanwendung? Stichwort PAnsiChar und PWideChar...
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat