CArchive::GetObjectSchema

UINT GetObjectSchema ( );

Возвращаемое значение

Во время десериализации, версия объекта чтения.

Примечания

Эта функция вызывается из функции Serialize для определения версии объекта, который десериализуется в настоящее время. Вызов этой функции является допустимым только при загрузке (CArchive::IsLoading возвращает ненулевое) объекта CArchive . Он должен быть первый звонок в функцию Serialize и вызван только один раз. Возвращаемое значение –1 (UINT) указывает, что номер версии неизвестен).

CObject-производный класс может использовать VERSIONABLE_SCHEMA (с помощью побитового или) в сочетании с самой версии схемы (в макросе IMPLEMENT_SERIAL ) для создания "лежащая объект," то есть, объект которого функция-член Serialize может читать несколько версий. Рамки функциональность по умолчанию (без VERSIONABLE_SCHEMA) является выдает исключение при несовпадающие версии.

Пример

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

void CMyObject::Serialize (CArchiveamp; ar) {}
   Если (Ар.IsLoading())
   {
      int nVersion = Ар.GetObjectSchema();

Switch(nVersion)
      {
      случай 0:
         / / читать в предыдущей версии / / этот объект
         перерыв;
      случай 1:
         / / читать в текущей версии
         / / Этот объект
         перерыв;
      по умолчанию:
         / / доклад неизвестной версии / / этот объект
         перерыв;
      }
   }
   остальное
   {
      / / Здесь идет нормальный, хранение кода
   }
}

Обзор CArchiveЧлены класса | Иерархическая схема

См. такжеnbsp;CObject::Serialize, CObject::IsSerializable, IMPLEME&NT_SERIAL, DECLARE_SERIAL, CArchive::IsLoading

Index