Ja, in einer Konsolen-Anwendung mit
WriteLn(..)
klappt es auf allen Systemen wie erwartet. Komisch.
In meinem konkreten Fall waren es natürlich keine Messageboxen, sondern das abschließende Schreiben der Einstellungen beim Beenden der Anwendung. Auf dem XP-Rechner wurde die Datei noch nicht einmal angelegt (
TIniFile.UpdateFile()
)
Ich hätte auch grade auf einer XP VM schwören können, die Klassendestruktor-Messagebox einmal kurz aufblitzen zu sehen. Ich habe
keinen XP-Rechner mit RAD Studio zur Hand und mit Remote Debugging habe ich auch keine Erfahrung. Deshalb kann ich hier nur so amateurhafte Beobachtungen machen
Wo könnte ich denn anfangen zu suchen, woran es liegt?
PS: Füge ich in meiner
VCL-Anwendung ein
OutputDebugString(Text: PChar)
hinzu, kann man das mit Tools wie
DebugView noch sehen.
Mein Titel ist also falsch: Der Klassen-Destruktor wird sehr wohl ausgeführt, aber anscheinend funktioniert die Hälfte darin (Messageboxen, Dateioperationen) nicht mehr vernünftig. Oder er zieht sich selbst nach ein paar Millisekunden den Boden unter den Füßen weg. Ich weiß es nicht.
Gibt es allgemeine Richtlinien, was man dort noch tun darf?