CArchive::GetObjectSchema
Bu işlevi çağrısı Serialize şu anda serisi nesne sürümünü belirlemek için işlev.
UINT GetObjectSchema( );
Dönüş Değeri
Seri kaldırma sırasında okunan nesnesinin sürümü.
Notlar
Bu işlevi, yalnızca geçerli ne zaman CArchive nesne yüklendiğinden (CArchive::IsLoading sıfır olmayan bir değer döndürür). İlk çağrıda olması gereken Serialize işlevi ve yalnızca bir kez denir. Dönüş değeri (UINT) –1 gösterir sürüm numarası bilinmiyor.
A CObject-türetilmiş bir sınıf kullanabilir VERSIONABLE_SCHEMA bir arada (Bitsel kullanarak OR) şema sürümüyle (içinde IMPLEMENT_SERIAL makro) bir "karşılaştıkları nesne," başka bir deyişle, bir nesne oluşturmak için Serialize üye işlevi, birden çok sürüm okuyabilir. Varsayılan framework işlevselliği (olmadan VERSIONABLE_SCHEMA) sürümü uyumsuz olduğunda bir özel durum oluşturmaktır.
Örnek
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
}
}
Gereksinimler
Başlık: afx.h