Compartilhar via


Duas maneiras para criar um objeto CArchive

Há duas maneiras para criar um CArchive objeto:

  • Criação implícita de um objeto CArchive por meio da estrutura

  • Criação explícita de um objeto CArchive

Criação implícita de um objeto CArchive por meio da estrutura

Forma mais comum e fácil, é permitir que a estrutura de criar um CArchive o objeto para o documento em nome da salvar, salvar como e comandos Abrir no menu arquivo.

Eis o que a estrutura faz quando o usuário de seu aplicativo emite o comando Salvar como no menu Arquivo:

  1. Apresenta o Salvar como caixa de diálogo e obtém o nome do usuário.

  2. Abre o arquivo chamado pelo usuário como um CFile objeto.

  3. Cria um CArchive objeto que aponta para esse CFile objeto.Na criação de CArchive de objeto, a estrutura define o modo de "armazenar" (gravar, serializar), em oposição a "carga" (ler, desserializar).

  4. Chamadas a Serialize função definida no seu CDocument-derivado classe, passando uma referência para o CArchive objeto.

O documento Serialize função grava dados para o CArchive de objeto, conforme explicado em breve.Após retornar de sua Serialize função, o framework destrói o CArchive objeto e, em seguida o CFile objeto.

Assim, se você permitir que a estrutura de criar o CArchive de objeto de documento, tudo que você precisa fazer é implementar o documento Serialize função que grava e lê de e para o arquivamento.Você também deve implementar Serialize de qualquer CObject-derivado objetos que o documento Serialize função por sua vez serializa direta ou indiretamente.

Criação explícita de um objeto CArchive

Além de serializar um documento por meio da estrutura, existem outras ocasiões em que é necessário um CArchive objeto.Por exemplo, convém para serializar os dados e para a área de transferência, representado por um CSharedFile objeto.Ou talvez queira usar uma interface de usuário para salvar um arquivo que é diferente da oferecida pela estrutura.Nesse caso, você pode criar explicitamente um CArchive objeto.Você fazer isso da mesma forma que a estrutura faz, usando o procedimento a seguir.

Para criar explicitamente um objeto de CArchive

  1. Construir um CFile objeto ou um objeto derivado de CFile.

  2. Passar o CFile o objeto para o construtor para CArchive, conforme mostrado no exemplo a seguir:

    CFile theFile;
    theFile.Open(_T("CArchive__Test.txt"), CFile::modeCreate | CFile::modeWrite);
    CArchive archive(&theFile, CArchive::store);
    

    O segundo argumento para o CArchive construtor é um valor enumerado que especifica se o arquivo será usado para armazenar ou carregar dados para ou do arquivo.O Serialize a função de um objeto verifica esse estado chamando o IsStoring função para o objeto de arquivamento.

Quando você terminar de armazenar ou carregar dados para ou a partir de CArchive de objeto, fechá-lo.Embora o CArchive (e CFile) objetos automaticamente fechará o arquivamento (e arquivos), é recomendável fazer isso explicitamente desde que ela facilita a recuperação de erros.Para obter mais informações sobre manipulação de erros, consulte o artigo exceções: detectar e excluir exceções.

Para fechar o objeto CArchive

  • O exemplo a seguir ilustra como fechar o CArchive objeto:

    archive.Close();
    theFile.Close();
    

Consulte também

Conceitos

Serialização: Serializar um objeto