Freigeben über


Gibt es MFC-Klassen oder -Funktionen, die nicht in einer MFC-DLL verwendet werden können?

Erweiterungs-DLLs verwenden die von CWinApp abgeleitete Klasse der Clientanwendung. Sie dürfen keine eigene, von CWinApp abgeleitete Klasse haben.

Reguläre DLLs müssen über eine von CWinApp abgeleitete Klasse sowie über ein einzelnes Objekt dieser Anwendungsklasse verfügen, wie dies auch bei einer MFC-Anwendung der Fall ist. Anders als das CWinApp-Objekt einer Anwendung hat das CWinApp-Objekt der DLL keine Haupt-Meldungsverteilschleife.

Da der CWinApp::Run-Mechanismus nicht auf eine DLL angewendet werden kann, ist die Haupt-Meldungsverteilschleife im Besitz der Anwendung. Wenn die DLL nicht modale Dialogfelder öffnet oder ein eigenes Hauptrahmenfenster besitzt, dann muss die Haupt-Meldungsverteilschleife der Anwendung eine von der DLL exportierte Routine aufrufen, die wiederum die Memberfunktion CWinApp::PreTranslateMessage des DLL-Anwendungsobjekts aufruft.

Siehe auch

Konzepte

FAQ (Häufig gestellte Fragen) zu DLLs