Das mit dem Programmabsturtz konnte ich lösen (hoffe ich zumindest). Wie schon erwähnt, verwende ich jetzt try/catch. Damit sieht meine Main-Funktion , der Hauptapplikation jetzt so aus:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
int main()
{
try
{
while(App->Run())
{
DoSomething();
}
}
catch(...) //catch any exception
{
GDMLOG_EXIT();
}
}
|
In GDMLOG_EXIT() wird dann noch das Schreiben der Log-Datei erledigt.
Ich glabue dass es damit funktioniert. Bin mir aber noch nicht sicher, denn ich bin noch nicht dazu gekommen, das auch auszuprobieren. Aber laut MSDN ist das eine der Möglichkeiten eine ungewollte Programmtermination festzustellen.
Dieser Block sollte aber nur dann nötig sein, wenn das Programm wirklich "abschmiert". Ansonsten habe ich das Schreiben der Log-Datei in der ExitInstance-Methode der Dll, was keine Probleme macht, solange man die Applikation nicht mit StopDebug beendet oder das Programm eben wirklich abstürzt.
mfg Philipp