书上说的不能再标准的非模态对话框的创建如下,在红色Create语句调试居然会出错,access voliation错误
         CRoiDlg *pDlg=new CRoiDlg(this);      //初始化仿真对话框对象 
pDlg->Create(IDD_BIGSHOW_ROI);       //创建对话框  pDlg->ShowWindow(SW_SHOW);            //显示对话框
         求各位分析可能原因

解决方案 »

  1.   

    IDD_BIGSHOW_ROI是对话框模板么?
    还有,有没有被用过?
      

  2.   

    initdialog()
    oncreate()
    两个函数调试一下??
      

  3.   

    CRoiDlg *pDlg=new CRoiDlg(this); //初始化仿真对话框对象  
    pDlg->Create(CRoiDlg::IDD); 
    试试?
      

  4.   

    单步调试错误信息完整如下:Unhandled exception in xx.exe(MFC042D.dll):0xc0000005,Access violation
      

  5.   

    Roidlg hWnd=0x0000000;CDialog hWnd=0x000000;
      

  6.   

    dlg没有创建成功

    int error = GetLastError() ; 看看错误码是什么??
      

  7.   

    new操作失败了吧,可能是内存堆溢出
      

  8.   

    参考
    http://topic.csdn.net/t/20060731/12/4916487.html
      

  9.   

    最新情况:我把我网上下载添加的GRID CTRL控件删除后,就没问题了~~~~~,请问这是为什么呢
      

  10.   

    你Debug下调试进入对话框类的初始化函数中看看
      

  11.   

    if(pDlg == NULL)
    {
        CRoiDlg *pDlg=new CRoiDlg(this); //初始化仿真对话框对象  
        pDlg->Create(IDD_BIGSHOW_ROI); //创建对话框 
        pDlg->ShowWindow(SW_SHOW); //显示对话框
    }
    你可以这样试试。
      

  12.   

    if(pDlg == NULL)
    {
      CRoiDlg *pDlg=new CRoiDlg(this); //初始化仿真对话框对象   
      pDlg->Create(IDD_BIGSHOW_ROI); //创建对话框  
      pDlg->ShowWindow(SW_SHOW); //显示对话框
    }
    elsepDlg->ShowWindow(SW_SHOW); //显示对话框你可以这样试试。
      

  13.   

    最新情况:我把我网上下载添加的GRID CTRL控件删除后,就没问题了~~~~~,
    这个应该确定是外部控件和对话框创建之间的问题了,,是不是添加外部控件需要做什么处理?
      

  14.   

    最新情况:我把我网上下载添加的GRID CTRL控件删除后,就没问题了~~~~~,
    这个应该确定是外部控件和对话框创建之间的问题了,,是不是添加外部控件需要做什么处理?
      

  15.   

    和对话框没关系,和你对话框里的GRID CTRL控件,有关系,你看下这个控件的用法,估计是要先初始化控件才行,类似richedit控件的用法。
      

  16.   

    CPrSheet.h
      class CPrSheet : public CDialogppdlg.h 
       CPrSheet m_ptrDlg;  //必须是全局性的ppdlg.cpp
    void Cppdlg::Onclick()
    {    
         m_ptrDlg=new CPrSheet("单项运算", this);
         m_ptrDlg.Create(this);
         ShowWindow(SW_SHOW);
    }
      

  17.   

    这个问题我也遇见了,那位高手现在有时间帮忙看一下哦!
    1、在一个DLL中创建一个非模态对话框
    2、对话框中包含一个自定义控件
    3、在create()时报错,提示dlgcore.cpp 384行错
      

  18.   


    好长时间了,今天我也遇到这种问题,可以确定的说如果非模式对话框中如果含有自定义控件则用Create创建就会失败,解决办法是要先为自定义控件实例化,比如有个自定义控件IDC_CUSTOM1,你先定义一个你的开源控件的变量如CMyListCtrl m_list,然后为IDC_CUSTOM1绑定,DDX_Control(pDX, IDC_CUSTOM1, m_list); 就能创建成功了