Partager via


Services au moment de l'exécution du modèle objet

Les classes CObject et CRuntimeClass encapsulent plusieurs services d'objet, notamment l'accès aux informations sur la classe à l'exécution, la sérialisation, et la création d'objets dynamiques. Toutes les classes dérivées de CObject héritent de cette fonctionnalité.

L'accès aux informations sur la classe d'exécution vous permet de déterminer les informations sur une classe d'objets au moment de l'exécution. La capacité de déterminer la classe d'un objet au moment de l'exécution est utile lorsque vous avez besoin de vérifications de type supplémentaires des arguments de la fonction et lorsque vous devez écrire un code spécial en fonction de la classe d'un objet. Les informations sur la classe d'exécution ne sont pas prises en charge directement par le langage C++.

La sérialisation est le processus d'écriture ou de lecture du contenu d'un objet vers et à partir d'un fichier. Vous pouvez utiliser la sérialisation pour stocker le contenu d'un objet même après que l'application se termine. L'objet peut ensuite être lu à partir du fichier lorsque l'application est redémarrée. De tels objets de données sont dits "persistants".

La création d'objets dynamique permet de créer un objet d'une classe spécifiée au moment de l'exécution. Par exemple, les objets document, vue, et cadre doivent prendre en charge la création dynamique car l'infrastructure doit les créer dynamiquement.

Le tableau suivant répertorie les macros MFC qui prennent en charge les données de la classe à l'exécution, la sérialisation, et la génération dynamique.

Pour plus d'informations sur ces services à l'exécution et la sérialisation, consultez l'article Classe de CObject : Les informations sur l'accès à la classe en cours d'exécution.

Macros des services du modèle objet au moment de l'exécution

DECLARE_DYNAMIC

Permet d'accéder aux informations sur la classe d'exécution (doit être utilisé dans la déclaration de classe).

DECLARE_DYNCREATE

Permet la création dynamique et l'accès aux informations sur la classe d'exécution (doit être utilisé dans la déclaration de classe).

DECLARE_SERIAL

Permet la sérialisation dynamique et l'accès aux informations sur la classe d'exécution (doit être utilisé dans la déclaration de classe).

IMPLEMENT_DYNAMIC

Permet d'accéder aux informations sur la classe d'exécution (doit être utilisé dans l'implémentation de classe).

IMPLEMENT_DYNCREATE

Permet la création dynamique et l'accès aux informations sur la classe d'exécution (doit être utilisé dans l'implémentation de classe).

IMPLEMENT_SERIAL

Permet la sérialisation et l'accès aux informations sur la classe d'exécution (doit être utilisé dans l'implémentation de classe).

RUNTIME_CLASS

Retourne la structure CRuntimeClass qui correspond à la classe nommée.

OLE requiert souvent la création dynamique des objets au moment de l'exécution. Par exemple, une application serveur OLE doit pouvoir créer des éléments OLE dynamiquement en réponse à une demande d'un client. De même, un serveur Automation doit être en mesure de créer des éléments en réponse à des demandes des clients Automation.

La bibliothèque MFC fournit deux macros spécifiques à OLE.

Création dynamique des objets OLE

DECLARE_OLECREATE

Active les objets à créer par l'intermédiaire de OLE Automation.

IMPLEMENT_OLECREATE

Active les objets à créer par le système OLE.

Voir aussi

Concepts

macro MFC et Globals