在DLL导出类中包含MFC的IMPLEMENT_DYNAMIC,在客户代码中如何让宏在预编译中被编译呢?我现在的情况是,DLL的导出类是使用了MFC的序列化功能。但是在反序列化时,由于导出类的IMPLEMENT_SERIAL没有在客户代码中,所以没有预编译。导致序列化类无法动态创建,该怎么解决呢?
望高手指点!

解决方案 »

  1.   

    自问自答吧:在建立dll时,选择MFC的dll扩展即可。
      

  2.   

    #define DECLARE_SERIAL_EXTDLL(class_name)   \ 
               _DECLARE_DYNCREATE(class_name)      \ 
               AFX_EXT_API friend CArchive& AFXAPI \ 
               operator>>(CArchive& ar, class_name* &pOb);   class AFX_EXT_CLASS CMyObject : public CObject
       {
           DECLARE_SERIAL_EXTDLL(CMyObject)
           ...   };   In the implementation (.cpp) file for CMyObject:   ...   IMPLEMENT_SERIAL(CMyObject, CObject, YOUR_SCHEMA_NUMBER_HERE)   ...