Freigeben über


CArchive::CArchive

Erstellt ein Objekt CArchive und gibt an, ob für das Laden oder das Speichern von Objekten verwendet wird.

CArchive(
   CFile* pFile,
   UINT nMode,
   int nBufSize = 4096,
   void* lpBuf = NULL 
);

Parameter

  • pFile
    Ein Zeiger auf CFile-Objekt, das die endgültige Quelle oder Ziel der persistenten Daten ist.

  • nMode
    Ziehen Sie ein Flag, das angibt, ob Objekte geladen oder zum Archiv gespeichert.Der nMode-Parameter muss einen der folgenden Werte aufweisen:

    • CArchive::load Daten vom Archiv.Nur CFile Leseberechtigung.

    • CArchive::store speichert Daten zum Archiv.Erfordert CFile Schreibberechtigung.

    • CArchive::bNoFlushOnDelete verhindert, dass die Archiv Flush automatisch Wählen, wenn der Archivdestruktor aufgerufen wird.Wenn Sie die diesem Flag, das für Schließen explizit aufrufen zuständig sind, bevor der Destruktor aufgerufen wird.Wenn Sie nicht ausführen, werden die Daten beschädigt.

  • nBufSize
    Eine ganze Zahl, die die Größe des internen Dateipuffers angibt, in Bytes.Beachten Sie, dass die standardmäßige Puffergröße 4.096 Bytes ist.Wenn Sie für große Objekte Datei, optimieren Sie die Leistung, wenn Sie eine größere Puffergröße verwenden, die ein Vielfaches der Dateipuffergröße ist.

  • lpBuf
    Ein optionaler Zeiger auf einen vom Benutzer bereitgestellten Puffer der Größe nBufSize.Wenn Sie diesen Parameter nicht angeben, ordnet das Archiv einen Puffer vom lokalen Heap zu und freigegeben, wenn das Objekt zerstört wird.Das Archiv gibt keinen vom Benutzer bereitgestellten Puffer frei.

Hinweise

Sie können diese Spezifikation nicht ändern, nachdem Sie das Archiv erstellt haben.

Sie verwenden möglicherweise nicht CFile Vorgänge, um den Zustand der Datei zu ändern, bis Sie das Archiv geschlossen haben.Alle solcher Vorgang schädigt die Integrität des Archivs.Sie greifen auf möglicherweise auf die Position des Dateizeigers jederzeit während der Serialisierung von Archivdateiobjekt erhaltendes das von der GetFile-Memberfunktion und dann mit der CFile::GetPosition-Funktion auf.Sie sollten CArchive::Flush aufrufen, bevor Sie die Position des Dateizeigers erhalten.

Beispiel

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);

Anforderungen

Header: afx.h

Siehe auch

Referenz

CArchive-Klasse

Hierarchien-Diagramm

CArchive::Close

CArchive::Flush

CFile::Close