串行化类
-
从CObject类派生(或从CObject的派生类派生)
-
重写Serialize()
-
使用DECLARE_SERIAL在类中声明
DECLARE_SERIAL(class_name)//class_name类名
-
定义不带参数的构造函数
-
类实现文件中使用IMPLEMENT_SERIAL定义
IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) //class_name类名称 base_class_name基类名称 wSchema版本号
MyClass的实现如下:
#pragma once class MyClass : public CObject { DECLARE_SERIAL(MyClass); public: MyClass(); virtual ~MyClass(); public: virtual void Serialize(CArchive& ar); };
// MyClass.cpp : implementation file // #include "stdafx.h" #include "TestSingDoc2.h" #include "MyClass.h" // MyClass IMPLEMENT_SERIAL(MyClass,CObject,VERSIONABLE_SCHEMA|5) MyClass::MyClass() { } MyClass::~MyClass() { } // MyClass member functions void MyClass::Serialize(CArchive& ar) { if (ar.IsStoring()) { // storing code } else { // loading code } }
版权声明:本文为wuyuan2011woaini原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。