在线等待为什么在dll里用DialogBox函数的对话框显示不出来

解决方案 »

  1.   

    hInstance 参数传递的是正确的 dll 实例句柄吗?
      

  2.   

    資源問題,你的模板創建了嗎?
    資源句柄是否切換到dll裡?
    在構造函數裡:
      句柄切入dll:
    hInst = GetModuleHandle(DllName);
    if (hInst)
    {
    hOldInst = AfxGetResourceHandle();
    AfxSetResourceHandle(hInst);
    }
    else
    return;
      在destroy或者你認為合適的時候:          AfxSetResourceHandle(hOldInst);        切回去。
      

  3.   

    按如下方法可以解决:
     如是模式对话,则重载Create函数,如是无模式对话框,则可以建自已的创建函数。
    然后在函数中加入如下代码:    CYourDlgClass *pYourDlg=this;
    HMODULE hModule = LoadLibrary(_T("Your.dll"));
    HRSRC hSrc =  FindResource(hModule,MAKEINTRESOURCE(IDD_DISPLAYERRMSG),RT_DIALOG);
        HGLOBAL hDialogTemplate  = LoadResource(hModule,hSrc); if(pYouDlg->CreateIndirect(hDialogTemplate,NULL))
    {
      return TRUE;
    }
    else
    {
     AfxMessageBox("创建对方框失败!");
      return FALSE
    }
    我是做的软件中有这个问题,我就是这么解决的。
    your.dll就是你在这对话框要生成的DLL文件
      

  4.   

    那会不会是少它的原因呢。
    AFX_MANAGE_STATE(AfxGetStaticModuleState());