CArchive::SerializeClass

当需要存储并加载基类的版本信息时,应调用此成员函数。

void SerializeClass(
   const CRuntimeClass* pClassRef 
);

参数

  • pClassRef
    对运行时选件类对象的指针基类的。

备注

SerializeClass 读取或写入对选件类为 CArchive 对象,按照 CArchive的方向。 在 ReadClass 位置使用 SerializeClassWriteClass 作为一种简便方式序列化基类的对象; SerializeClass 需少量代码和较少形参。

ReadClassSerializeClass 验证存档的选件类信息与您的运行时选件类兼容。 如果没有CLS,SerializeClass 将引发 CArchiveException

您的运行时选件类必须使用 DECLARE_SERIALIMPLEMENT_SERIAL;否则,SerializeClass 将引发 CNotSupportedException

使用 RUNTIME_CLASS 宏检索 pRuntimeClass 参数的值。 基类所使用的 IMPLEMENT_SERIAL 宏。

示例

class CBaseClass : public CObject 
{
   DECLARE_SERIAL(CBaseClass);
};
class CDerivedClass : public CBaseClass
{
public:
   virtual void Serialize(CArchive& ar);
};
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);
}

要求

Header: afx.h

请参见

参考

CArchive选件类

层次结构图

CArchive::ReadClass

CArchive::WriteClass

CArchive::GetObjectSchema

CArchive::SetObjectSchema

CArchiveException选件类

CNotSupportedException选件类