CArchive::GetObjectSchema
이 함수를 호출 하는 Serialize 현재 역직렬화 되는 개체의 버전을 확인 하는 함수입니다.
UINT GetObjectSchema( );
반환 값
역직렬화 하는 동안, 읽고 개체의 버전입니다.
설명
이 함수를 호출 됩니다만 유효한 경우는 CArchive 개체 로드 (CArchive::IsLoading 0이 아닌 반환).첫 번째 호출에서는 되어야는 Serialize 함수 및 한 번만 호출된 합니다.반환 값 (UINT) – 1을 나타내는 버전 번호를 알 수 없습니다.
A CObject-가 파생된 클래스에 사용할 VERSIONABLE_SCHEMA 결합 (비트를 사용 하 여 OR) 스키마 버전 (에 IMPLEMENT_SERIAL 매크로)는 "관리성 개체," 즉, 개체를 만들려면 해당 Serialize 멤버 함수는 여러 버전을 읽을 수.기본 프레임 워크 기능 (없이 VERSIONABLE_SCHEMA) 버전을 일치 하지 않을 때 예외를 throw 하는 것입니다.
예제
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
}
}
요구 사항
헤더: afx.h