CWinApp::ExitInstance()



  • Hi!

    Bin gerade draufgekommen, dass meine Anwendung aus irgendeinem Grund nicht ExitInstance aufruft und somit ein Speicherloch entsteht. Bei besten Willen weiß ich leider nicht warum dies so ist. Nun wollte ich euch fragen wo denn ExitInstance vom framework aufgerufen wird. Ich habe bereits versucht die Run() Methode zu überschreiben und PumpMessage() auf 0 abgefragt um dann ExitInstance aufzurufen, aber es funktioniert einfach nicht. Die Anwendung besteht aus einem CWinApp Objekt und als Fensterklasse verwende ich ein von CFrameWnd abgeleitete Klasse, die zum Rendern einer OpenGL Grafik dient. Wenn ich in der InitInstance Methode meines App Objektes eine ganz normales CFrameWnd Fenster erstelle und den Pointer auf dieses Fenster m_pMainWnd übergebe, wird ExitInstance ganz normal aufgerufen, bei meinem von CFrameWnd abgeleiteten Fenster passiert dies jedoch nicht.

    MfG
    Stephan



  • Habe ich richtig verstanden: du erwartest, dass ExitInstance in deiner CFrameWnd-abgeleiteten Klasse aufgerufen wird? ExitInstance wird nur in deinem einzigen CWinApp-Objekt aufgerufen. Wenn ein Fenster zerstört wird, wird OnDestroy aufgerufen und in PostNcDestroy löscht sich das von CFrameWnd abgeleitete Objekt.


Anmelden zum Antworten