我看了一些网上文章:他们都说加入对话框资源后,写一个继承对话框类A和一个导出函数f(),在导出函数f
中最前面加语句:AFX_MANAGE_STATE(AfxGetStaticModuleState());然后,A  a1; a1.DoModal();
最后在.exe中调用f();就会有对话框显示;
但是,问题来了,如下:
int OnLetter()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
int nRet=0;
    CWriteMail wm;//CDialog为基类

         nRet=wm.DoModal();
if(nRet==-1)
{
AfxMessageBox("不能调用书写版!");
}
else
{ if(nRet==IDABORT)
{
AfxMessageBox("调用书写版出错!");
}
}
 return 1;
}
最后我在.exe中调用int OnLetter():
结果,老得到:"不能调用书写版!"; 为么老是创建不了对话框????

解决方案 »

  1.   

    你在对话框资源在哪?
    http://community.csdn.net/Expert/topic/3296/3296255.xml?temp=.1253778
      

  2.   

    对话框上是否有一些activex控件?
      

  3.   

    对话框上加了edit,checkbox,radio 等控件,请问还需要加什么函数,将资源象图标那样导入?
    CWriteMail:public CDialog 已经声明了(我加入时,按向导形成的CWriteMail类啊)
      

  4.   

    http://www.vckbase.com/document/viewdoc/?id=543
      

  5.   

    我用getlasterror检查出错代码,得到:"操作成功完成".这可是我意料不到的
      

  6.   

    dll已经可以调用,问题出错在于:为么老执行
             nRet=wm.DoModal();
    if(nRet==-1)
    {
    AfxMessageBox("不能调用书写版!");
    }
       这两句呢? nRet==-1也就是:对话框创建不成功,但用getlasterror检查出错代码,得到:"操作成功完成".这太搞笑了吧
      

  7.   

    谢谢诸位,都是我加了rich edit 惹的祸,我删了它,成功了!