Duas maneiras de 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 através do estrutura
A maneira mais comum e mais fácil, é permitir que a estrutura de criar um CArchive objeto para o documento em nome da salvar, salvar sistema autônomo e em em aberto comandos no menu Arquivo.
Eis o que a estrutura faz quando o usuário de seu aplicativo emite o comando Salvar sistema autônomo no menu Arquivo:
Apresenta o Salvar sistema autônomocaixa de diálogo e obtém o nome de arquivo do usuário.
Abre o arquivo chamado pelo usuário sistema autônomo um CFile objeto.
Cria um CArchive objeto que aponta para esse CFile objeto. Criar o CArchiveo objeto, a estrutura define o modo de "armazenar" (gravar, serializar), ao contrário de "load" (leitura, desserializar).
Chama o Serialize função definida no seu CDocument-derivada da classe, passando a ele uma referência para o CArchive objeto.
Serialize função, em seguida, grava sistema autônomo dados para o CArchive o objeto, conforme explicado em breve. Após retornar em seu Serialize função, o estrutura destrói o CArchive objeto e, em seguida, o CFile objeto.
Portanto, se você permitir que a estrutura de criar o CArchive objeto para o documento, tudo o que você precisa fazer é implementar o documento Serialize função que gravações e leituras e para o arquivar. Você também deve implementar Serialize para qualquer CObject-derivado objetos que o documento Serialize por sua vez, a função serializa direta ou indiretamente.
Criação explícita de um objeto CArchive
Além de um documento por meio da estrutura de serialização, existem outras ocasiões, você terá um CArchive objeto. Por exemplo, convém para serializar os dados e para a área de transferência, representado por um CSharedFile objeto. Ou, você pode usar uma interface de usuário para salvar um arquivo que seja 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.
Criar um objeto CArchive explicitamente
Construir um CFile objeto ou um objeto derivado de CFile.
Passar o CFile 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 arquivar será usado para armazenar ou carregamento de dados ou do arquivar. The Serialize função de um objeto verifica esse estado, chamando o IsStoring função para o objeto de arquivar.
Quando você está armazenando terminado ou o carregamento de dados ou para o CArchive objeto, fechar-o. Embora o CArchive (e CFile) objetos automaticamente fechará o arquivar (e arquivar), é uma mercadoria prática de fazer isso explicitamente, pois ela facilita a recuperação de erros. Para obter mais informações sobre tratamento de erro, consulte o artigo Exceções: Captura e excluindo exceções.
Para fechar o objeto CArchive
O exemplo a seguir ilustra como fechar o CArchive objeto:
archive.Close(); theFile.Close();