Partager via


Gérer les données d'état des modules MFC

Cet article explique les données d'état des modules MFC et comment cet état est mis à jour lorsque le flux d'exécution (prend de code de tracé une application en exécutant) écrit et permet à un module.Basculement de états du module avec les macros d' AFX_MANAGE_STATE et d' METHOD_PROLOGUE est également abordé.

[!REMARQUE]

Le terme « module » fait référence ici à un programme exécutable, ou à une DLL (ou l'ensemble de DLL) qui fonctionnent indépendamment du reste de l'application, mais utilise une copie partagée de la DLL MFC.Un contrôle ActiveX est un exemple typique d'un module.

Comme indiqué dans l'illustration suivante, MFC possède des données d'état de chaque module utilisé dans une application.Les exemples de ces données incluent des handles d'instance windows (utilisées pour charger des ressources), des pointeurs vers CWinApp et aux objets actuels d' CWinThread d'une application, de OLE numéros de référence de module, et un ensemble de tables qui contiennent les connexions entre les handles d'objet windows et les instances correspondantes des objets MFC.Toutefois, lorsqu'une application utilise plusieurs modules, les données d'état de chaque module ne sont pas application générale.En effet, chaque module possède sa propre copie privée les données d'état MFC.

Données d'état d'un seul module (application)

Données d'état de l'application à module unique

Les données d'état d'un module sont contenues dans une structure et sont toujours disponibles via un pointeur à cette structure.Lorsque le flux d'exécution écrit un module particulier, comme indiqué dans l'illustration suivante, que l'état du module doit être « actif » ou « état efficace ».Par conséquent, chaque objet thread a un pointeur vers la structure efficace d'état de cette application.Conserver ce pointeur mis à jour à tout moment est essentiel à gérer l'état global de l'application et à maintenir l'intégrité de l'état de chaque module.La gestion incorrecte de l'état global peut engendrer un comportement d'application imprévisible.

Données d'état de plusieurs modules

Données d'état des modules multiples

En d'autres termes, chaque module est chargé de basculer correctement entre les états du module du tout de ses points d'entrée.Un « point d'entrée » est tous les emplacements où le flux d'exécution peut écrire le code du module.Les points d'entrée incluent :

Voir aussi

Concepts

Les rubriques de général MFC