我在接口函数中加了AFX_MANAGE_STATE(AfxGetStaticModuleState())这句,怎么还是对话框显示还是失败,请高手帮我一下。
int WINAPI SetPerformOption()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
    CDlgOption DlgOption;  
    return DlgOption.DoModal();
}

解决方案 »

  1.   

    把那句换成这个试试看
    AFX_MANAGE_STATE(AfxGetAppModuleState());
      

  2.   

    CDlgOption hwnd=0x00000000
    int WINAPI SetPerformOption()就是接口函数
      

  3.   

    错误原因:CDlgOption hwnd=0x00000000
      

  4.   

    你的这个对话框是你直接在DLL中创建的,还是以前用Exe形式的写好了,直接拷贝到DLL中的?
    如果是后者的话,在DLL中重建,我以前也碰到过这样的问题,但是后来莫名其妙好了。如果是前者的话,估计是你的对话框的ID重复了,或者你不小心删掉了一些对话框的初始化函数。建议在DLL中重新建一个对话框试试看。AFX_MANAGE_STATE(AfxGetAppModuleState());
       CDlgOption DlgOption;  
        return DlgOption.DoModal();这三句话本身没有错,是肯定能弹出对话框来的。
      

  5.   

    AfxSetResourceHandleThis function sets the HINSTANCE handle that determines where the default resources of the application are loaded.void AfxSetResourceHandle(
    HINSTANCE hInstResource ); 
    Parameters
    hInstResource 
    Specifies the instance or module handle to an .EXE or DLL file from which the application’s resources are loaded. 
      

  6.   

    extern "C" __declspec(dllexport) int SetPerformOption(HWND hWndParent)
    {
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
        CDlgOption DlgOption(CWnd::FromHandle(hWndParent));  
        return DlgOption.DoModal();
    }
      

  7.   

    搞了一下午,对话框里有个richedit不对,不知道怎么的,放上去就OVER。