网站首页  词典首页

请输入您要查询的计算机术语:

 

术语 CArchive::GetObjectSchema
释义 CArchive::GetObjectSchema

UINT GetObjectSchema( )

返回值:返回在非串行化过程中,被读入对象的版本。

说明:
由Serialize函数调用此函数,确定当前被非串行化的对象的版本。当CArchive对象正在被装载时,调用此函数才是有效的(CArchive::IsLoading则返回非零值)。它必须是Serialize函数的第一次调用而且只能调用一次。返回值-1(UINT)说明版本数未知。
CObject派生类可以使用与大纲版本自己(在IMPLEMENT_SERIALH宏里)结合起来使用的VERSIONABLE_SEHEMA,创建一个“版本化对象”,即一个对象它的成员函数可以读入多个版本。当版本不匹配时,缺省的框架功能(不带有VERSIONABLE_SHEMA)将异常信号。

示例:
IMPLEMENT_SERIAL(CMyObject,CObject,VERSIOANABLE_SCHEMA|1)
void CMyObject::Serialize(CArchive& ar)
{
  if (ar.Isloading( ))
  {
    int nVersion = ar.GetObjectSchma( );
    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 soring code goes here
  }
}

请参阅:
CObject::Serialize, CObject::IsSerializable, IMPLEMENT_SERIAL, DECLARE_SERIAL, CArchive::IsLoading
随便看

 

MFC类库中文详解手册包含4274条MFC类库参考词条,基本涵盖了Microsoft基本类库中的类、全局函数、全局变量和宏的内容,是计算机编程的有利工具。

 

Copyright © 2004-2023 Winrtm.com All Rights Reserved
京ICP备2021023879号-40 更新时间:2024/10/6 14:34:28