Compartilhar via


Serialização em MFC

Este artigo explica o mecanismo de serialização fornecido na biblioteca de classes do Microsoft (MFC) para permitir que os objetos persistam entre as execuções do programa.

A serialização é o processo de leitura ou gravação de um objeto para ou de um meio do repositório persistente como um arquivo em disco. A serialização é ideal para situações em que se deseja manter o estado de dados estruturados (como classes estruturas ou C++) durante ou depois da execução de um programa. Usar objetos de serialização MFC fornecidos pelo permite que isso ocorra em um modo padrão e consistente, aliviando o usuário da necessidade de executar a mão operações de arquivo.

MFC O fornece suporte interno para serialização na classe CObject. Assim, todas as classes derivadas de CObject podem tirar proveito do protocolo de serialização de CObject .

A exibição básica de serialização é que um objeto deve poder gravar seu estado atual, normalmente indicado pelo valor de suas variáveis de membro, ao armazenamento persistente. Posteriormente, o objeto pode ser recriado ler, ou desserialização, o estado do objeto de armazenamento. A serialização trata todos os detalhes dos ponteiros do objeto e referências circulares para objetos usados quando você serializa um objeto. Um ponto-chave é que o próprio objeto é responsável para ler e escrever seu próprio estado. Assim, para que seja serializável uma classe, implemente as operações básicas de serialização. Conforme mostrado no grupo de serialização de artigos, é fácil adicionar essa funcionalidade a uma classe.

MFC O usa um objeto da classe de CArchive como um intermediário entre o objeto a ser serializado e suporte de memória. Esse objeto é sempre associado a um objeto de CFile , da obtenção de informações necessárias para a serialização, incluindo o nome de arquivo e se a operação solicitada é uma leitura ou uma gravação. O objeto que executa uma operação de serialização pode usar o objeto de CArchive sem considerar a natureza de suporte de memória.

Um objeto de CArchive usa operadores sobrecarregados de inserção (<<) e de extração**>>**() para executar operações de gravação e de leitura. Para obter mais informações, consulte Armazenando e carregamento CObjects meio de um arquivo morto na serialização de artigo: Serializando um objeto.

Dica

Não confunda a classe de CArchive com as classes de iostream, que são para o texto formatado somente.A classe de CArchive é para objetos serializados formato binário.

Se desejar, você pode ignorar a serialização MFC para criar seu próprio mecanismo para o armazenamento de dados persistente. Você precisará substituir as funções de membro da classe que serialização iniciada no comando do usuário. Consulte a discussão em Observação 22 técnica dos comandos de ID_FILE_OPEN, o padrão de ID_FILE_SAVE, e de ID_FILE_SAVE_AS .

Os artigos a seguir abrangem as duas tarefas principais necessárias para a serialização:

O artigo Serialização: Serialização na base de dados de entrada descreve quando a serialização é uma técnica apropriada de entrada/saída em aplicativos de base de dados.

Consulte também

Referência

Classe CArchive

Classe CObject

Classe CDocument

Classe CFile

Conceitos

Tópicos MFC gerais

Outros recursos

Conceitos MFC