这个很easy吧,你把创建对话框的程序拷贝到你的导出函数中改上两下就行了。

解决方案 »

  1.   

    add AFX_CLASS_EXT to your dialog class head.
      

  2.   

    用MFC写一个regular dll,里面可以用MFC
    function ShowDialog(HWND* pdlgwnd)
    {
        .....
    *pdlgwnd=dlg.m_hWnd
    }
      

  3.   

    g_hInst是指向的是Application的实例,而不是DLL的实例句柄,所以不能取得资源。
      

  4.   

    BOOL APIENTRY DllMain( HANDLE hModule, 
                           DWORD  ul_reason_for_call, 
                           LPVOID lpReserved
     )
    {
        switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    ghInst=(HINSTANCE)hModule;
    break;
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
    break;
        }DialogBox(g_hInst,(LPCTSTR)IDD_LISTLAYOUTSDLG,g_hWnd, (DLGPROC) Dlg_Proc);    return TRUE;
    }
      

  5.   

    如果你的DLL是常规DLL,要使用资源的话,应该使用使用一个宏AFX_MANAGER_MODULE来进行定义。
      

  6.   

    在创建dll时选扩展动态连接库。
      

  7.   

    在调用对话框之前调用
    AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
    就没有问题了。