我的dll用extern "C" __declspec(dllexport) void ShowDllDialog(XXX)这样的接口给外部的exe程序调用,然后在ShowDllDialog这个方法里创建一个模式对话框,将其显示出来,这个对话框在全局中有定义。程序原先调试通过,但后来在这个对话框中加入一个ie控件,之后创建对话框就失败了,程序跟踪到mfc里面的 hWnd = ::CreateDialogIndirect(hInst, lpDialogTemplate,
pParentWnd->GetSafeHwnd(), AfxDlgProc);
hWnd返回空指针。

解决方案 »

  1.   

    刚才有个地方写错了,应该是创建非模式对话框,是继承CDialog的
      

  2.   

    http://www.vckbase.com/document/viewdoc/?id=543在Dll中创建对话框并调用
      

  3.   

    你后来加入的控件需要某种环境初始化后才能使用,试试AfxOleInit
      

  4.   

    楼上各位的方法。另外AFX_MANAGE_STATE(AfxGetStaticModuleState()));了么?
      

  5.   

    应该是控件没有初始化,再初始化中加上AfxOleInit