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