Las clases CObject y CRuntimeClass encapsulan varios servicios de objeto, incluido el acceso a la información de clase en tiempo de ejecución, la serialización y la creación dinámica de objetos. Todas las clases derivadas de CObject heredan esta funcionalidad.
Acceso a la información de clase en tiempo de ejecución permite determinar información acerca de la clase de un objeto en tiempo de ejecución. La capacidad para determinar la clase de un objeto en tiempo de ejecución es útil cuando necesita extra-comprobación de tipos de argumentos de función, y cuando se debe escribir código de propósito especial basado en la clase de un objeto. Información de clase en tiempo de ejecución no es compatible directamente con el lenguaje C++.
La serialización es el proceso de escribir o leer contenido de un objeto a o desde un archivo. Puede utilizar la serialización para almacenar el contenido de un objeto, incluso después de que sale de la aplicación. Entonces se puede leer el objeto desde el archivo cuando se reinicia la aplicación. Tales objetos de datos se dicen que son "persistente".
Creación dinámica de objetos le permite crear un objeto de una clase especificada en tiempo de ejecución. Por ejemplo, documento, vista y objetos frame deben apoyar creación dinámica porque el marco necesario crear de forma dinámica.
La tabla siguiente muestran las macros MFC que soportan la información de clase en tiempo de ejecución, la serialización y la creación dinámica.
Para obtener más información sobre estos servicios objeto de tiempo de ejecución y la serialización, vea el artículo clase CObject: acceso a la información de clase de tiempo de ejecución en el Manual del programador de Visual C++.
Tiempo de ejecución objeto modelo servicios Macros
| DECLARE_DYNAMIC | Permite el acceso a la información de clase en tiempo de ejecución (debe utilizarse en la declaración de clase). |
| DECLARE_DYNCREATE | Permite la creación dinámica y acceso a la información de clase en tiempo de ejecución (debe utilizarse en la declaración de clase). |
| DECLARE_SERIAL | Permite la serialización y acceso a la información de clase en tiempo de ejecución (debe utilizarse en la declaración de clase). |
| IMPLEMENT_DYNAMIC | Permite el acceso a la información de clase en tiempo de ejecución (debe ser usada en la implementación de la clase). |
| IMPLEMENT_DYNCREATE | Permite la creación dinámica y acceso a la información de tiempo de ejecución (debe ser usada en la implementación de la clase). |
| IMPLEMENT_SERIAL | Serialización de permisos y acceso a la información de clase en tiempo de ejecución (debe ser usada en la implementación de la clase). |
| RUNTIME_CLASS | Devuelve la estructura CRuntimeClass que corresponde a la clase con nombre. |
OLE con frecuencia requiere la creación dinámica de objetos en tiempo de ejecución. Por ejemplo, una aplicación de servidor OLE debe ser capaz de crear elementos OLE dinámicamente en respuesta a una solicitud de un cliente. Asimismo, un servidor de automatización debe ser capaz de crear elementos en respuesta a las solicitudes de los clientes de automatización.
La biblioteca Microsoft Foundation Class proporciona dos macros específicas a OLE.
Creación dinámica de objetos OLE
| DECLARE_OLECREATE | Permite que los objetos que se creará a través de automatización OLE. |
| IMPLEMENT_OLECREATE | Permite que los objetos a ser creados por el sistema OLE. |