Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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