CArchive::CArchive
Costruisce un oggetto CArchive e specifica se verrà utilizzato per il caricamento o archiviare gli oggetti.
CArchive(
CFile* pFile,
UINT nMode,
int nBufSize = 4096,
void* lpBuf = NULL
);
Parametri
pFile
Un puntatore all'oggetto CFile che è l'origine o la destinazione finale dei dati persistenti.nMode
Un flag che specifica se gli oggetti verranno caricati verranno archiviati nell'archivio. Il parametro nMode deve avere uno dei seguenti valori:I carichi diCArchive::load dall'archivio. Richiede solo l'autorizzazione di lettura CFile.
CArchive::store salvare i dati nell'archivio. Richiede l'autorizzazione di scrittura CFile.
CArchive::bNoFlushOnDelete impedisce l'archivio da Flush automaticamente chiamante quando il distruttore di l viene chiamato. Se si imposta questo flag, viene utilizzata in modo esplicito di chiamare Chiudi prima che il distruttore venga chiamato. In caso contrario, i dati verranno danneggiati.
nBufSize
Un intero che specifica la dimensione del buffer interno di file, in byte. Si noti che le dimensioni del buffer predefinite a 4.096 byte. Se vengono in genere gli oggetti grandi, verrà migliorato mediante le prestazioni se si utilizzano le dimensioni maggiori dimensioni del buffer da un multiplo della dimensione del buffer di file.lpBuf
Un puntatore facoltativo a un buffer fornito dall'utente di dimensione nBufSize. Se non si specifica questo parametro, l'archivio alloca un buffer dall'heap locale e lo liberare quando l'oggetto viene eliminato. L'archivio non libera un buffer fornito dall'utente.
Note
Non è possibile modificare questa specifica dopo avere creato l'archivio.
Non è possibile utilizzare le operazioni CFile per modificare lo stato del file finché non viene chiuso store. Qualsiasi operazione danneggierà l'integrità dell'archivio. È possibile accedere alla posizione del puntatore del file in qualsiasi momento durante la serializzazione ottenere l'oggetto file di archivio dalla funzione membro GetFile quindi utilizzando la funzione CFile::GetPosition. È necessario chiamare CArchive::Flush prima di ottenere la posizione del puntatore del file.
Esempio
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);
Requisiti
Header: afx.h