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 CArchive

Gráfico da hierarquia

CArchive::Close

CArchive::Flush

CFile::Close