Condividi tramite


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

Vedere anche

Riferimenti

Classe CArchive

Grafico delle gerarchie

CArchive::Close

CArchive::Flush

CFile::Close