As classes CObject e CRuntimeClass encapsulam vários serviços de objeto, incluindo o acesso a informações de classe de tempo de execução, serialização e criação do objeto dinâmico. Tudo as classes derivadas de CObject herdam essa funcionalidade.
Acesso a informações de classe de tempo de execução permite que você determinar informações sobre classe de um objeto em tempo de execução. A capacidade de determinar a classe de um objeto em tempo de execução é útil quando você precisa extra tipo-verificação de argumentos da função, e quando você deve gravar código de finalidade especial com base na classe de um objeto. Informações de classe de tempo de execução não são suportadas diretamente pela linguagem C++.
Serialização é o processo de gravar ou ler o conteúdo de um objeto para ou de um arquivo. Você pode usar serialização para armazenar conteúdo de um objeto, mesmo depois que o aplicativo é encerrado. O objeto, em seguida, pode ser lido do arquivo quando o aplicativo for reiniciado. Esses objetos de dados são disse a ser "persistente".
Criação do objeto dinâmico permite que você crie um objeto de uma classe especificada em tempo de execução. Por exemplo, documento, exibir e objetos de quadro devem suporte criação dinâmica porque o framework precisa criá-los dinamicamente.
A tabela a seguir lista as macros do MFC que oferecem suporte a informações de classe de tempo de execução, serialização e criação dinâmica.
Para obter mais informações sobre esses serviços de objeto de tempo de execução e serialização, consulte o artigo CObject classe: acessar informações de classe Run-Time no Guia do programador do Visual C++.
Macros de serviços de modelo de objeto de tempo de execução
| DECLARE_DYNAMIC | Permite o Acessar às informações de classe de tempo de execução (devem ser usados na declaração de classe). |
| DECLARE_DYNCREATE | Permite que dinâmico criação e acesso a informações de classe de tempo de execução (devem ser usados na declaração de classe). |
| DECLARE_SERIAL | Permite a serialização e acessar a informações de classe de tempo de execução (devem ser usados na declaração de classe). |
| IMPLEMENT_DYNAMIC | Permite o Acessar às informações de classe de tempo de execução (devem ser usados na implementação de classe). |
| IMPLEMENT_DYNCREATE | Permite que dinâmico criação e acesso a informações de tempo de execução (devem ser usados na implementação de classe). |
| IMPLEMENT_SERIAL | Permite a serialização e acessar a informações de classe de tempo de execução (devem ser usados na implementação de classe). |
| RUNTIME_CLASS | Retorna a estrutura CRuntimeClass que corresponde à classe nomeada. |
OLE requer frequentemente a criação dinâmica de objetos em tempo de execução. Por exemplo, um aplicativo de servidor OLE deve ser capaz de criar itens OLE dinamicamente em resposta a uma Solicitar de um cliente. Da mesma forma, um servidor de automação deve ser capaz de criar itens em resposta a solicitações de clientes de automação.
O Microsoft Foundation Biblioteca de Classees fornece dois macros específicas para OLE.
Criação dinâmica de objetos OLE
| DECLARE_OLECREATE | Habilita os objetos a serem criados por meio de automação OLE. |
| IMPLEMENT_OLECREATE | Habilita os objetos a serem criados pelo sistema OLE. |