Freigeben über


Verwalten der Statusdaten von MFC-Modulen

In diesem Artikel wird die Zustandsdaten von MFC-Modulen und wie dieser Bedingung aktualisiert werden, wenn der Fluss der Ausführung (der Pfad von Code nimmt von einer Anwendung während der Ausführung), ein Modul eingibt und verlässt.Schaltmodul Bedingungen mit den AFX_MANAGE_STATE und METHOD_PROLOGUE Makros wird auch erläutert.

HinweisHinweis

Der Begriff "module" bezieht sich hier ein ausführbares Programm oder einer DLL (oder den Satz von DLL), die 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 hat MFC Zustandsdaten für jedes Modul, das in einer Anwendung verwendet wird.Beispiele hierfür Daten enthalten Windows-Instanzhandles (wird zum Laden von Ressourcen) Zeiger auf den aktuellen CWinApp und CWinThread-Objekten einer Anwendung, OLE-Modul verweiszähler und eine Vielzahl von Zuordnungen, die die Verbindungen zwischen Windows-Objekthandles und entsprechenden Instanzen von MFC-Objekten beibehalten.Wenn eine Anwendung jedoch mehrere Module verwendet, sind die Zustandsdaten jedes Moduls Anwendung nicht weiter.Stattdessen verfügt jedes Modul eine eigene private Kopie der Zustandsdaten des MFC.

Zustandsdaten eines Einzelmoduls (Anwendung)

Zustandsdaten einer Einzelmodulanwendung

Die Zustandsdaten eines Moduls werden in einer Struktur enthalten und sind immer über einen Zeiger auf diese Struktur verfügbar.Wenn der Fluss der Ausführung ein bestimmtes Modul, wie in der folgenden Abbildung gezeigt eingegeben werden, die den Zustand des Moduls sein muss der "aktuell" oder "effektiver" - Zustand.Deshalb verfügt jedes Threadobjekt einen Zeiger auf den effektiven Staatsaufbau dieser Anwendung.Diesen Zeiger bleibt jedoch jederzeit aktualisiert wurde zum Verwalten des globalen Zustand der Anwendung und Verwaltung der Integrität vom Zustand jedes Moduls wichtig.Falsche Verwaltung des globalen Zustand kann zu unvorhersehbaren Anwendungsverhalten führen.

Zustandsdaten mehrerer Module

Zustandsdaten mehrerer Module

Das bedeutet, dass für jedes Modul angezeigt Modulzuständen zwischen allen zugehörigen Einstiegspunkte wechseln ordnungsgemäß ausgeführt.Ein "Einstiegspunkt" ist ein beliebiger Stelle, an der der Fluss der Ausführung des Moduls den Code eingeben kann.Einstiegspunkt sind möglich:

Siehe auch

Konzepte

Allgemeine MFC-Themen