P
Ich mal wieder^^, immer noch ein Prob zum aktuellen Projekt.
Also ich habe eine DLL, diese besitzt ein von CWinApp abgeleitets Objekt. Dieses erstellt ein ein CMyFrameWnd. So nun kann man von außen per DLL-Funktion beliebig nicht-modale Dialoge erstellen. Diese werden in einem CObArray im CMyFrame gespeichter(Zeiger von dem Dialog, der per new angelegt wurde).
Wenn ein Dialog beendet wird schickt dieser eine Nachricht an das Framefenster und dieses beendes den Dialog und löscht in dann. Soweit so gut.
Wenn nun aber die DLL entladen wird und es sind noch Dialge offen passiert folgendes: in ExitInstance des WinApp-Objektes wird dem CMyFrame gesagt, dass es alle noch offenen Dialog schließen und löschen soll. Das klappt, nur immer der letzte Dialog lässt sich nicht löschen. Sobald ich vom zuletzt erstellten Dialog DestroyWindow() rufe oder delete pDiag; (Zeiger auf den Dialog) mache hängt sich das Programm auf. Keine Exception, keine Assertion, es geht einfach nicht weiter.
Wenn ich alle Dialoge per Hand schließe und dann die Hauptanwendung, welche die DLL ruft, schließe, funktioniert aber alles.
Woran kann das liegen????????
ach ja Edit: die Adresse im Zeiger stimmt, das ist eindeutig die Adresse vom Dialog, habe ich per Debugger geprüft