我的扩展DLL中声明了一个CCallDlg类
class AFX_EXT_CLASS CCallDlgClass : public CObject  
{
private :
public:
int ShowDlg();
CCallDlgClass();
virtual ~CCallDlgClass();
};
其中
int CCallTranClass::ShowDlg()
{
CTestDlg dlg;
if (IDOK==dlg.DoModal())
{
return 1;
}
return 0;
}CTestDlg 是我自己写的一个对话框类,含有MFC类,实现一部分功能
在测试调用此DLL时,测试程序Debug时是可以的,但是切换到Release时就不行了,为什么啊?

解决方案 »

  1.   

    int CCallTranClass::ShowDlg()
    写错,是:
    int CCallDlgClass::ShowDlg()
      

  2.   

    CTestDlg dlg;
    if (IDOK==dlg.DoModal())
    {
    return 1;
    }
    =>
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    CTestDlg dlg;
    if (IDOK==dlg.DoModal())
    {
    return 1;
    }
      

  3.   

    扩展DLL Release版时 又出现如下错误mfcs42.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in ExportClass.obj
    mfcs42.lib(dllmodul.obj) : error LNK2005: __pRawDllMain already defined in ExportClass.obj
    mfcs42.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined in ExportClass.obj; second definition ignored
    mfcs42.lib(dllmodul.obj) : warning LNK4006: __pRawDllMain already defined in ExportClass.obj; second definition ignored
       Creating library Release/ExportClass.lib and object Release/ExportClass.exp
    Release/ExportClass.dll : fatal error LNK1169: one or more multiply defined symbols found
      

  4.   

    使用MFC类的带有对话框资源的,对话框中有按钮之类的更复杂处理程序,想把它封装到DLL中,要求在别的程序里能调用,这些程序可以是VC 、也可是C++ Builder。
        我该选择建立哪种DLL(我目前使用的VC做这个工作?
      

  5.   

    为什么建立规则的DLL不能在对话框中处理更复杂的程序啊?比如:调用MapGis二次开发函数,