看侯俊杰的《深入浅出MFC》中关于串行化那部分,感觉Serialize(CArchive &ar)必须和DECLARE_SERIAL/IMPLEMENT_SERIAL宏“成双成对”才可以,网上也看到了实现序列化的的类需要满足的五个条件:
  
 1. 该类需要从CObject类派生(可以是间接派生);  
 2. 在类中中进行DECLARE_SERIAL宏定义;   
  3. 类存在有缺省的构造函数;   
  4. 类中实现了Serialize()函数,并且在其中调用基类的序列化函数;  
 5. 使用IMPLEMENT_SERIAL宏指明类名及版本号;但是《深入浅出MFC》有这么段程序(p340)
 class CScribbleDoc:public CDocument

   DECLARE_DYNCREATE(CScribbleDoc);
   ……
   virtual void Serialize(CArchive &ar);
   DECLARE_MESSAGE_MAP();

  void CScribbleDoc::Serialize(CArchive &ar)
{……}
为什么这里不用DECLARE_SERIAL/IMPLEMENT_SERIAL宏也可以用Serialize(CArchive &ar)???不明白了