다음을 통해 공유


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

참고 항목

참조

CArchive 클래스

계층 구조 차트

CObject::Serialize

CObject::IsSerializable

IMPLEMENT_SERIAL

DECLARE_SERIAL

CArchive::IsLoading