术语 | 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基本类库中的类、全局函数、全局变量和宏的内容,是计算机编程的有利工具。