Udostępnij za pośrednictwem


Zarządzanie danymi Państwo modułów MFC

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

[!UWAGA]

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

Jak pokazano na poniższym rysunku, MFC ma danych o stanie dla każdego modułu, używane w aplikacji.Dane te przykłady uchwytów wystąpienia systemu Windows (używany do ładowania zasobów), wskaźniki do bieżącego 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 do obiektów systemu Windows i odpowiednie wystąpienia obiektów MFC.Jednakże, gdy aplikacja używa wielu modułów, dane o stanie każdego modułu nie jest aplikacji szeroki.Raczej każdy moduł ma własną kopię prywatnych danych o stanie MFC.

Dane Państwo pojedynczego modułu (aplikacja)

Dane o stanie aplikacji pojedynczego modułu

Dane o stanie modułu jest zawarte w strukturze i jest zawsze dostępna za pośrednictwem wskaźnika do struktury.Podczas wykonywania wejścia danego modułu, jak pokazano na poniższym rysunku, stan tego modułu musi być Państwo "bieżący" lub "skuteczne".Dlatego każdy obiekt wątku ma wskaźnik do struktury skuteczne Państwo tej aplikacji.Utrzymanie tego wskaźnika w ogóle aktualizowane razy jest globalny stan aplikacji zarządzania i utrzymania integralności Państwa każdego modułu.Zarządzanie niepoprawne globalnego Państwa może prowadzić do stosowania nieprzewidywalne zachowanie.

Dane Państwo wiele modułów

Wiele danych o stanie modułów

Innymi słowy każdy moduł jest odpowiedzialny za prawidłowo przełączanie między Państwami moduł na wszystkich jego punktów wejścia."Punkt wejścia" jest każde miejsce, gdzie przepływ wykonanie można wprowadzić kod modułu.Punkty wejścia, obejmują:

Zobacz też

Koncepcje

Tematy MFC ogólne