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