Warum sollte der Konstruktor meiner abgeleiteten CWinApp aufgerufen werden, bevor Hauptfunktion gestartet wird?
Warum kann es sein, nicht so etwas wie:Warum muss ich in MFC eine globale Instanz von CWinApp erstellen?
int WinMain()
{
CMainFrame* pMainFrame = new CMainFrame;
// etc ...
}
Ich bin für den technischen Grund suchen, die dieses Verhalten zwingt.
Bearbeiten:
Um klarer zu machen - Wenn ich Win32 API ohne MFC verwenden, wird das Hauptfenster in WinMain erstellt, was ist der Unterschied?
Vermutlich wird der Konstruktor für 'CWinApp' ausgeführt * bevor * die' main' Funktion ausgeführt wird. Aber ich bin mir nicht sicher. Ich habe das nie versucht, um zu sehen, ob es funktioniert. Hast du? –
@CodyGray Ja, ich habe es versucht. Die Anwendung stürzt innerhalb von AfxWinMain ab –
Ah ja, genau wie Frederics Antwort voraussagt. Der Konstruktor für 'CWinApp' setzt den Wert einiger Zustandsvariablen, die von' AfxWinMain' erwartet werden. –