Zarządzanie danymi stanu modułów MFC

W tym artykule omówiono dane o stanie modułów MFC i jak ten stan jest aktualizowany, gdy wchodzi przepływem wykonania (kod ścieżka ma za pośrednictwem aplikacji podczas wykonywania) i pozostawia modułu.Przełączanie Państwa moduł z AFX_MANAGE_STATE i METHOD_PROLOGUE makra została również omówiona.

[!UWAGA]

Termin "module" tutaj odnosi się do programu wykonywalnego, lub biblioteki DLL (lub zbiór bibliotek DLL), które działają niezależnie od reszty aplikacji, ale używa kopii udostępnionej biblioteki MFC DLL.Formant ActiveX jest typowym przykładem moduł.

Jak pokazano na poniższym rysunku, MFC zawiera dane o stanie dla każdego modułu, używane w aplikacji.Dane te przykłady uchwytów wystąpienie systemu Windows (używany do ładowania zasobów), wskaźniki do bieżącej CWinApp i CWinThread obiektów aplikacji, zliczanie odwołań modułu OLE i różnych map, które utrzymują połączeń między uchwytów obiektów systemu Windows i odpowiednie wystąpienia obiektów MFC.Gdy aplikacja używa wielu modułów, dane o stanie każdego modułu nie jest jednak stosowanie szeroki.Przeciwnie każdy moduł ma własną prywatną kopię danych o stanie MFC.

Stan danych pojedynczy moduł (aplikacja)

Dane stanu pojedynczego modułu (aplikacje)

Dane o stanie modułu jest zawarty w strukturze i jest zawsze dostępna za pośrednictwem wskaźnik do tej struktury.Gdy przepływem wykonania wprowadza danego modułu, jak pokazano na poniższym rysunku, stan tego modułu musi być stanie "bieżący" lub "skuteczne".W związku z tym każdy obiekt wątku ma wskaźnik do struktury skuteczne Państwo tej aplikacji.Utrzymanie tego wskaźnika w ogóle aktualizowane godziny jest niezbędna do globalny stan aplikacji zarządzania i utrzymywanie integralności Państwa każdego modułu.Zarządzanie niepoprawny stan globalny może prowadzić do stosowania nieprzewidywalne zachowanie.

Stan danych wielu modułów

Dane stanu wiele modułów

Innymi słowy każdy moduł odpowiada za prawidłowo przełączanie między Państwami moduł w ogóle jej punktów wejścia."Punkt wejścia" jest każde miejsce, w którym przepływem wykonania można wprowadzić kod modułu.Punkty wejścia obejmują:

Zobacz też

Koncepcje

Tematy ogólne dotyczące MFC