CArchive::WriteObject

Speichert angegebene CObject zum Archiv.

void WriteObject(
   const CObject* pOb 
);

Parameter

  • pOb
    Ein konstanter Zeiger auf das Objekt, das gespeichert wird.

Hinweise

Diese Funktion wird normalerweise vom Operator CArchive Einfüge-<<() aufgerufen, der für CObject überladen wird.WriteObject ruft wiederum die Serialize-Funktion der archivierten Klasse auf.

Sie müssen das IMPLEMENT_SERIAL-Makro verwenden, um der Archivierung zu aktivieren.WriteObject schreibt den ASCII-Klassennamen zum Archiv.Dieser Klassenname wird später während des Ladevorgangs überprüft.Ein besonderes Codierungsschema verhindert unnötige Verdoppelung des Klassennamens für mehrere Objekte der Klasse.Dieses Schema wird außerdem verhindert redundanten Speicher von Objekten, die Ziele von mehr als einem Zeiger sind.

Das genaue Objektkodierungsverfahren (einschließlich Vorhandensein des ASCII-Klassennamens) ist implementierungsspezifisch und kann in zukünftigen Versionen der Bibliothek ändern.

HinweisHinweis

Beenden Sie alle, die Objekte zu erstellen, zu löschen und aktualisieren, bevor Sie beginnen, um sie zu archivieren.das Archiv ist beschädigt, wenn Sie das Archivieren mit Objektänderung kombinieren.

Beispiel

Eine Definition der Klasse CAge, finden Sie im Beispiel für CObList::CObList.

CFile myFile(_T("My__test__file.dat"), 
   CFile::modeCreate | CFile::modeReadWrite);
CAge age(21), *pAge;

// Create a storing archive.
CArchive arStore(&myFile, CArchive::store);

// Write the object to the archive
arStore.WriteObject(&age);

// Close the storing archive
arStore.Close();

// Create a loading archive.
myFile.SeekToBegin();
CArchive arLoad(&myFile, CArchive::load);

// Verify the object is in the archive.
pAge = (CAge*) arLoad.ReadObject(RUNTIME_CLASS(CAge));
ASSERT(age == *pAge);       

Anforderungen

Header: afx.h

Siehe auch

Referenz

CArchive-Klasse

Hierarchien-Diagramm

CArchive::ReadObject