Compartilhar via


CArchive::CArchive

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

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

Parâmetros

  • pFile
    Um ponteiro para o objeto de CFile que é a origem ou o destino final de dados persistentes.

  • nMode
    Um sinalizador de que especifica se os objetos ou carregados serão armazenados ao arquivamento.O parâmetro de nMode deve ter um dos seguintes valores:

    • Carrega dados deCArchive::load do arquivamento.Requer somente a permissão de leitura de CFile .

    • CArchive::store salva dados para o arquivo neutro.Requer permissão de gravação de CFile .

    • CArchive::bNoFlushOnDelete evita o arquivo neutro automaticamente de chamada Flush quando o destrutor do arquivamento é chamado.Se você definir este sinalizador, você é responsável para chamar explicitamente Fechar antes que o destrutor é chamado.Se você não fizer isso, os dados estarão danificados.

  • nBufSize
    Um número inteiro que especifica o tamanho do buffer interno do arquivo, em bytes.Observe que o tamanho do buffer padrão é 4.096 bytes.Se você arquivos com freqüência objetos grandes, você irá melhorar o desempenho se você usar um tamanho do buffer maior que é um múltiplos do tamanho do buffer de arquivo.

  • lpBuf
    Um ponteiro opcional de um buffer usuário fornecido de tamanho nBufSize.Se você não especificar esse parâmetro, o arquivo neutro atribui um buffer da heap local e o libera quando o objeto é destruído.O arquivo neutro não liberar um buffer usuário fornecido.

Comentários

Você não pode alterar essa especificação depois de criar o arquivo neutro.

Você não pode usar operações de CFile para alterar o estado do arquivo até que você feche o arquivo neutro.Uma operação danificará a integridade do arquivamento.Você pode acessar a posição do ponteiro do arquivo a qualquer momento durante a serialização obter o objeto do arquivo do arquivamento da função de membro de GetFile e então usando a função de CFile::GetPosition .Você deve chamar 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 de CArchive

Gráfico de hierarquia

CArchive::Close

CArchive::Flush

CFile::Close