CArchive::GetObjectSchema

UINT GetObjectSchema ( );

Wartość zwracany

Podczas deserializacji, wersji obiektu odczytywanego.

Uwagi

Wywołanie tej funkcji z funkcji Serialize wersję obiektu, który jest obecnie deserializacji. Wywołanie tej funkcji jest prawidłowa tylko gdy obiekt CArchive jest ładowane (CArchive::IsLoading zwraca zera). Powinno być pierwszym wywołaniem funkcji Serialize i wywołać tylko raz. Zwracana wartość wynosząca –1 (UINT) wskazuje, że numer wersji jest nieznana).

CObject-pochodną klasy mogą używać VERSIONABLE_SCHEMA Scalonej (używając logiczną lub) z samej wersji schematu (w makrze IMPLEMENT_SERIAL ) do utworzenia "niezawodnych obiektu," oznacza to, że obiekt którego funkcja Członkowskie Serialize można znaleźć wiele wersji. Funkcję ramy domyślną (bez VERSIONABLE_SCHEMA) ma Zgłoś wyjątek, gdy niezgodność wersji.

Przykład

IMPLEMENT_SERI&AL (CMyObject, CObject, VERSIONABLE_SCHEMA|1)

void CMyObject::Serialize (CArchiveamp; ar) {}
   Jeżeli (cz.d.a.IsLoading())
   {
      int nWymagana = ar.GetObjectSchema();

Switch(nVersion)
      {
      przypadek 0:
         / / Odczyt w poprzedniej wersji / / tego obiektu
         podział;
      przypadek 1:
         / / Odczyt w bieżącej wersji
         / / tego obiektu
         podział;
      wartość domyślna:
         / / report nieznanej wersji / / tego obiektu
         podział;
      }
   }
   Else
   {
      / / Normalny przechowywanie kodu tu
   }
}

Omówie&nie CArchive |nbsp; Klasa członków | Wykres hierarchii

Zobacz teżnbsp;CObject::Serialize, CObject::IsSerializable, IMPLEME&NT_SERIAL, DECLARE_SERIAL, CArchive::IsLoading

Index