Einzelnen Beitrag anzeigen

TheSledgeHammer

Registriert seit: 22. Mai 2019
Ort: Mulfingen
43 Beiträge
 
Delphi 10.3 Rio
 
#34

AW: Zugriffsverletzung beim Zerstören der TIniFile-Instanz

  Alt 28. Jan 2021, 14:15
Ich meine mich zu erinnern, ein ähnliches oder gar gleiches Problem mit "Invalid handle" Exceptions gehabt zu haben gehabt zu haben, als ich ein Formular in einer DLL erzeugt hatte. Die Klasse TForm greift an bestimmten Stellen auf das TApplication-Objekt zu. In der DLL ist aber nie eine Instanz dieses Objekt erzeugt worden, und daher ist Application.Handle (und Application.MainFormHandle) nicht gesetzt und daher ungültig, wahrscheinlich 0. Daher musst du beim Erzeugen der Form in der DLL ein gültiges Handle an TForm.WndParent übergeben und damit indirekt Application.Handle befüllen.

Siehe auch https://www.delphipraxis.net/1293954-post10.html und der damit verbundene Thread. Das Handle ist bei mir das Hauptfenster des Programms, in dem Fall Total Commander, von dem ich dieses Handle auch bekomme.

Grüße
Dalai
Also ich hab das jetzt auch ausprobiert und es ist derselbe Fehler, wie wenn ich das via Application.Handle setze. Wenn ich weder das eine noch das andere mache, erhalte ich zumindest keinen invalid handle value Fehler mehr Also das wird es dann auch nicht sein, so wie himitsu das auch schon vermutet hat.

Und was ich auch ausschließen kann, war meine Vermutung, dass der parallele Zugriff auf eine einzige physische Datei durch mehrere Instanzen des TIniFile-Objekts zu Problemen führen würde. Hab mir da eine Test-Applikation geschrieben mit 4 Timern drauf und die haben in die eine Ini-Datei problemlos geschrieben. Zwei Zeitstempel waren sogar auf die Milisekunde identisch, also irgendwie ist das schon synchronisiert; zumindest bei EXE-Projekten. Ob das bei DLL-Projekten auch so ist, das wissen nur die Götter des Olymps
Tobias
  Mit Zitat antworten Zitat