现在我遇到这样的问题,我在一个程序中开发的类库,在那个程序中无论是DEBUG,还是RELEASE运行都没有问题,后来我要在另外的程序中重用它,在DEBUG中没问题,在RELEASE中序列化(serialize)出现问题,我用的是CTypedPtrList把我所写的类组织成链表的数据结构,当他调用CRuntimeClass::CreateObject时,居然找到其他类声明IMPLEMENT_SERLIA处!我现在前驴技穷,无计可施。哪位高手指点,分不够可以继续加

解决方案 »

  1.   

    谢谢楼上的兄弟,我现在的情况是我的程序叫Player,极有可能出问题的类叫CPlayer,会不会是这个问题?但是确实没有重复的名字的类出现。
      

  2.   

    应该是
    DECLARE_DYNCREATE/IMPLEMENT_DYNCREATE
    DECLARE_SERIAL/IMPLEMENT_SERIAL
    这类宏的参数没设对引起的
      

  3.   

    两个模块的MFC连接方式不一致也可能产生问题Command what is yours
    Conquer what is not
      

  4.   

    问题被我解决了,我加了个宏
    #undef AFX_API
    #define AFX_API AFX_EXT_CLASS
    MY CLASS definition
    #undef AFX_API
    #define AFX_API
    在没加如这个宏之前,RELEASE版本中,在类别型录网上,没有我所定义类,C++的规范是在静态变量先初始化,我不明白他为什么会这样。而加了这个宏之后,好象类被当作MFC EXTENSION DLL 来处理的。警告说DLL不符。程序可以正常运行,生成文件中多了一个*.lib。