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.
Hinweis |
---|
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