Freigeben über


CArchive::WriteClass

Verwenden Sie WriteClass, um die Version und die Klasseninformationen einer Basisklasse während der Serialisierung der abgeleiteten Klasse zu speichern.

void WriteClass(
   const CRuntimeClass* pClassRef 
);

Parameter

  • pClassRef
    Ein Zeiger auf die CRuntimeClass-Struktur, die zum angeforderten Klassenverweis entspricht.

Hinweise

WriteClass schreibt CArchive einen Verweis auf CRuntimeClass für die Basisklasse.Verwendung CArchive::ReadClass, den Verweis abrufen.

WriteClass überprüft, ob die archivierten Klasseninformationen mit der Laufzeitklasse kompatibel sind.Wenn es nicht kompatibel ist, löst WriteClassCArchiveException aus.

die Laufzeitklasse muss DECLARE_SERIAL und IMPLEMENT_SERIAL verwenden; andernfalls löst WriteClassCNotSupportedException aus.

Sie können SerializeClass anstelle WriteClass verwenden, das Lesen und Schreiben des Klassenverweises bearbeitet.

Beispiel

CFile myFile(_T("My__test__file.dat"), 
   CFile::modeCreate | CFile::modeReadWrite);

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

// Store the class CAge in the archive.
arStore.WriteClass(RUNTIME_CLASS(CAge));

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

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

// Load a class from the archive.
CRuntimeClass* pClass = arLoad.ReadClass();
if (!pClass->IsDerivedFrom(RUNTIME_CLASS(CAge)))
{
   arLoad.Abort();                  
}

Anforderungen

Header: afx.h

Siehe auch

Referenz

CArchive-Klasse

Hierarchien-Diagramm

CArchive::ReadClass

CArchive::GetObjectSchema

CArchive::SetObjectSchema

CArchive::SerializeClass

CArchiveExceptions-Klasse

CNotSupportedExceptions-Klasse

CObList::CObList