Compartilhar via


CArchive::CArchive

Constrói um CArchive objeto e especifica se será usado para carregar ou armazenar objetos.

CArchive(
   CFile* pFile,
   UINT nMode,
   int nBufSize = 4096,
   void* lpBuf = NULL 
);

Parâmetros

  • pFile
    Um ponteiro para o CFile objeto que é a fonte definitiva ou o destino dos dados persistentes.

  • nMode
    Um sinalizar que especifica se objetos serão carregados a partir de ou armazenados para o arquivar.The nMode parâmetro deve ter um dos seguintes valores:

    • CArchive::load   Carrega dados de arquivar.Requer apenas CFile permissão de leitura.

    • CArchive::store   Salva os dados no arquivar.Requer CFile permissão de gravar.

    • CArchive::bNoFlushOnDelete   Impede que o arquivar automaticamente chamando Flush Quando o destruidor de arquivar é chamado. Se você conjunto esse sinalizar, você é responsável por chamar explicitamente Fechar antes que o destruidor é chamado.Se você não fizer isso, seus dados serão estar corrompidos.

  • nBufSize
    Um número inteiro que especifica o dimensionar do buffer de arquivo interno, em bytes.Observe que o padrão dimensionar do buffer é 4.096 bytes.Se você arquivar rotineiramente objetos grandes, você irá melhorar o desempenho se você usar um dimensionar de buffer maior que é um múltiplo do dimensionar do buffer de arquivo.

  • lpBuf
    Um ponteiro de opcional para um buffer de dimensionar fornecido pelo usuárionBufSize. Se você não especificar esse parâmetro, o arquivar aloca um buffer da pilha local e libera-lo quando o objeto é destruído.O arquivar não liberar um buffer fornecido pelo usuário.

Comentários

Não é possível alterar esta especificação após você ter criado o arquivar.

Não é possível usar CFile as operações para alterar o estado do arquivar até que você tiver fechado o arquivar. Qualquer operação de tal danificará a integridade do arquivar.Você pode acessar a posição do ponteiro do arquivar a qualquer momento durante a serialização obtendo o objeto de arquivar do arquivar do GetFile função de membro e, em seguida, usando o CFile::GetPosition função.Você deve telefonar CArchive::Flush antes de obter a posição do ponteiro do arquivo.

Exemplo

CFile file;
TCHAR szBuf[512];
if( !file.Open(_T("CArchive__test__file.txt"), 
   CFile::modeCreate | CFile::modeWrite)) 
{
   #ifdef _DEBUG
     AFXDUMP(_T("Unable to open file\n"));
     exit(1);
   #endif
}
CArchive ar(&file, CArchive::store, 512, szBuf);

Requisitos

Cabeçalho: afx.h

Consulte também

Referência

Classe CArchive

Gráfico de hierarquia

CArchive::fechar

CArchive::Flush

CFile::fechar

Outros recursos

CArchive membros