CArchive::GetObjectSchema
Volání této funkce z Serialize funkce zjištění verze objektu, který je nyní rekonstruován.
UINT GetObjectSchema( );
Vrácená hodnota
Při rekonstrukci, verzi objektu přečtení.
Poznámky
Volání této funkce je platná pouze pokud CArchive je načítán objekt (CArchive::IsLoading vrátí nenulovou hodnotu).Je třeba v první volání Serialize funkci a volaná pouze jednou.Vrácená hodnota (UINT) –1 označuje číslo verze neznámý.
A CObject -mohou používat odvozené třídy VERSIONABLE_SCHEMA kombinované (pomocí bitové OR ) s verzí schématu sama (v IMPLEMENT_SERIAL makro) vytvoření "versionable objektu," objekt, jehož Serialize členské funkce můžete přečíst více verzí.Funkce výchozí rámec (bez VERSIONABLE_SCHEMA) je k vyvolání výjimky, když je neodpovídající verze.
Příklad
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
}
}
Požadavky
Záhlaví: afx.h