CArchive::SerializeClass

void SerializeClass(const CRuntimeClass* pRuntimeClass);

参数:
pRuntimeClass指向基类的运行类对象的指针。

说明:
当想存储和装载一个基类的版本信息时,调用此成员函数。SerializeClass读或对CArchive对象写一个类的参考,取决于CArchive的方向。使用SerializeClass来代替ReadClass和WriteClass,可以使得更方便地串行化基类对象。因为SerializeClass需要较少的代码和参数。
像ReadClass一样,SerializeClass证明了归档文件信息与的例程类兼容。如果不兼容,则SerializeClass将一个CArchiveException。
运行类必须使用DECLARE_SERIAL和IMPLEMENT_SERIAL,否则,SerializeClass将会一个CNotSupportException。
使用RUMTIME_CLASS宏,恢复pRuntimeClass参数的值。基类必须已经使用IMPLEMENT_SERIAL宏。

示例:
class CBaseClass:public CObject{...};
class CDerivedClass:public CBaseClass{...};
void CDerivedClass::Serialize(CArchive& ar)
{
  if(ar.IsStoring( ))
  {
    //normal code for storing contents
    //of this object
  }
  else
  {
    //normal code for reading contents
    //of this object
  }
  //allow the base class to serialize along
  // with its version information
  ar.SerializeClass(RUNTIME_CLASS(CBaseClass));
  CBaseClass::Serialize(ar);
}

请参阅:
CArchive::ReadClass, CArchive::WriteClass, CArchive::GetObjectSchema, CArchive::SetObjectSchema, CArchiveException, CNotSupportedException