Share via


Verwalten der Statusdaten von MFC-Modulen

In diesem Artikel werden die Zustandsdaten von MFC-Modulen und wie dieser Zustand aktualisiert wird, wenn der Fluss der Ausführung (der Pfadcode akzeptiert von einer Anwendung der Ausführung), Modul- eingibt und verlässt. Schaltmodulzustände mit den Makros AFX_MANAGE_STATE und METHOD_PROLOGUE wird auch erläutert.

Hinweis

Der Begriff "Modul" verweist hier ein ausführbares Programm oder eine DLL an (oder auf den Satz DLLs) das unabhängig vom Rest der Anwendung arbeiten, verwendet jedoch eine freigegebene Kopie der MFC-DLL.Ein ActiveX-Steuerelement ist ein typisches Beispiel eines Moduls.

Wie in der folgenden Abbildung gezeigt wurde MFC Zustandsdaten für jedes Modul, das in einer Anwendung verwendet wird. Beispiele für diese Daten enthalten Windows-Instanzhandles (zum Laden von Ressourcen), Zeiger zu aktuellen CWinApp und den CWinThread-Objekten einer Anwendung, OLE-Modulverweiszähler und eine Vielzahl von Zuordnungen, die die Verbindung zwischen Windows-Objekthandles und entsprechenden Instanzen von MFC-Objekten beibehalten. Wenn eine Anwendung über mehrere Module verwendet wird, gelten die Zustandsdaten jedes Moduls Anwendung nicht breit. Stattdessen hat jedes Modul eigene Kopie der Zustandsdaten des MFC.

Zustandsdaten eines Einzelmoduls (Anwendung)

Zustandsdaten eines Einzelmoduls (Anwendung)

Die Zustandsdaten eines Moduls werden in einer Struktur enthaltenen und sind stets über einen Zeiger auf diese Struktur verfügbar. Wenn der den Ausführungsablauf ein bestimmtes Modul, wie in der folgenden Abbildung zeigt, die der Zustand des Moduls befinden muss der "aktuelle" oder "effektiver" Zustand. Daher verfügt jedes Threadobjekt einen Zeiger an effektiven Staatsaufbau dieser Anwendung. Diesen Zeiger zu halten Zeitpunkt aktualisiert ist zum Verwalten des globalen Zustand der Anwendung und das Beibehalten der Integrität dem Zustand jedes Moduls wichtig. Falsche Verwaltung des globalen Zustand kann zu unvorhersehbarem Verhalten führen.

Zustandsdaten mehrerer Module

Zustandsdaten mehrerer Module

Das bedeutet, dass jedes Modul für Modulzuständen an allen zwischen die Einstiegspunkte ordnungsgemäß wechseln zuständig. Ein "Einstiegspunkt" ist jeder Stelle, in dem den Ausführungsablauf den Code des Moduls eingeben kann. Einstiegspunkteinschließung:

Siehe auch

Konzepte

Allgemeine MFC-Themen