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 diese Funktion aus der Serialize-Funktion auf, um die Version des Objekts zu bestimmen, das gerade deserialisiert wird.
UINT GetObjectSchema( );
Rückgabewert
Während der Deserialisierung die Version des Objekts, das gelesen wird.
Hinweise
Diese Funktion aufzurufen ist nur gültig, wenn das Objekt CArchive geladen wird (CArchive::IsLoading gibt Wert ungleich 0 zurück).Es sollte der erste Aufruf in der Serialize-Funktion und nur einmal aufgerufen werden.Ein Rückgabewert von (UINT) - 1 gibt an, dass die Versionsnummer unbekannt ist.
CObject von abgeleitete Klasse verwendet werden VERSIONABLE_SCHEMA kombiniertes (mit bitweisen OR) mit der Schemaversion selbst (im IMPLEMENT_SERIAL-Makro) um ein "verschiedenen Versionen verwendbare - das heißt, zu erstellen," ein Objekt, dessen Serialize-Memberfunktion mehrere Versionen lesen kann.Die standardmäßige Frameworkfunktionen gemeinsam (ohne VERSIONABLE_SCHEMA) ist, eine Ausnahme auszulösen, wenn die Version nicht übereinstimmt.
Beispiel
IMPLEMENT_SERIAL(CSchemaObject, CObject, VERSIONABLE_SCHEMA | 1)
void CSchemaObject::Serialize(CArchive& ar)
{
CObject::Serialize(ar);
if (ar.IsLoading())
{
int nVersion = ar.GetObjectSchema();
switch(nVersion)
{
case 0:
// read in previous version of
// this object
break;
case 1:
// read in current version of
// this object
break;
default:
// report unknown version of
// this object
break;
}
}
else
{
// Normal storing code goes here
}
}
Anforderungen
Header: afx.h