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