CArchive::GetObjectSchema

UINT GetObjectSchema ( );

반환 값

버전 읽히고 개체의 deserialization 하는 동안。

주의

현재 역직렬화 중인 개체의 버전을 확인 하려면 Serialize 함수에서이 함수를 호출 합니다. 이 함수를 호출 하는 CArchive 개체 로드 (CArchive::IsLoading 반환 0이 아닌) 되는 경우만 유효입니다. 그것은 Serialize 함수에 첫 번째 호출 이어야 하며 한 번만 호출 합니다. 반환 값이-1 (UINT) 버전 번호가 알 하지 나타냅니다)。

CObject-파생된 클래스 스키마 버전 ( IMPLEMENT_SERIAL 매크로)에서 VERSIONABLE_SCHEMA (비트 또는사용) 결합 하 여 사용할 수 있습니다 "블록인 개체," 누구의 Serialize 멤버 함수는 여러 버전을 읽을 수 있습니다 즉, 개체를 만듭니다. 기본 프레임 워크 기능 ( VERSIONABLE_SCHEMA) 없이 버전이 일치 하지 않을 때 예외를 throw 하는 것。

예제

IMPLEMENT_SERIAL (CMyObject, CObject, VERSIONABLE_SCHEMA|1)

CMyObject::Serialize (CArchiveamp; ar)을 무효로 {
   경우 (ar.IsLoading(&))
   {
      int nVersion = 아칸소.GetObjectSchema();

switch(nVersion)
      {
      사례 0:
         / /의 이전 버전에서 읽기 / /이 개체
         휴식 시간;
      사례 1:
         / / 현재 버전의 읽기
         / /이 개체
         휴식 시간;
      기본값:
         / / 알 수 없는 버전의 신고 / /이 개체
         휴식 시간;
      }
   }
   다른
   {
      / / 여기에 코드를 저장 하는 일반
   }
}

CArchive 개요 |nbsp; 클래스 멤버 (ko) | 계층 구조 차트(&N)

참고 항목nbsp;CObject::Serialize, CObject::IsSerializable, IMPLEMENT_SERIAL, DECLARE_SERIAL, CArchive::IsLoading(&N)

Index