CArchive::SerializeClass
Rufen Sie die Memberfunktion auf, wenn Sie die Versionsinformationen einer Basisklasse speichern und laden möchten.
void SerializeClass(
const CRuntimeClass* pClassRef
);
Parameter
- pClassRef
Ein Zeiger auf einen Ablaufklassenobjekt für die Basisklasse.
Hinweise
SerializeClass liest oder schreibt den Verweis auf eine Klasse CArchive-Objekt, abhängig von der Richtung CArchive.Verwenden Sie SerializeClass anstelle ReadClass und WriteClass als einfache Möglichkeit, Basisklassenobjekte zu serialisieren; SerializeClass erfordert weniger Code und weniger Parameter.
Wie ReadClassSerializeClass überprüft, dass die archivierten Klasseninformationen mit der Laufzeitklasse kompatibel sind.Wenn es nicht kompatibel ist, löst SerializeClassCArchiveException aus.
die Laufzeitklasse muss DECLARE_SERIAL und IMPLEMENT_SERIAL verwenden; andernfalls löst SerializeClassCNotSupportedException aus.
Verwenden Sie das RUNTIME_CLASS-Makro, um den Wert für den Parameter pRuntimeClass abzurufen.Die Basisklasse muss das IMPLEMENT_SERIAL-Makro verwendet haben.
Beispiel
class CBaseClass : public CObject
{
DECLARE_SERIAL(CBaseClass);
};
class CDerivedClass : public CBaseClass
{
public:
virtual void Serialize(CArchive& ar);
};
void CDerivedClass::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
//normal code for storing contents
//of this object
}
else
{
//normal code for reading contents
//of this object
}
//allow the base class to serialize along
//with its version information
ar.SerializeClass(RUNTIME_CLASS(CBaseClass));
CBaseClass::Serialize(ar);
}
Anforderungen
Header: afx.h