zoukankan      html  css  js  c++  java
  • debug模式下dlgdata.cpp line 43 断言失败

    我在VC6下显示Line 43, Line 624行失败

    网上有Line 40行猜测是其他版本

    运行程序出错,定位如下:

    HWND   CDataExchange::PrepareCtrl(int   nIDC)  
    {  
      ASSERT(nIDC   !=   0);  
      ASSERT(nIDC   !=   -1);   //   not   allowed  
      HWND   hWndCtrl;  
      m_pDlgWnd->GetDlgItem(nIDC,   &hWndCtrl);  
      if   (hWndCtrl   ==   NULL)  
      {  
      TRACE1("Error:   no   data   exchange   control   with   ID   0x%04X./n",   nIDC);  
      ASSERT(FALSE);         //   出错在此  
      AfxThrowNotSupportedException();  
      }  
      m_hWndLastControl   =   hWndCtrl;  
      m_bEditLastControl   =   FALSE;   //   not   an   edit   item   by   default  
      ASSERT(hWndCtrl   !=   NULL);       //   never   return   NULL   handle  
      return   hWndCtrl;  
    }  



    你先看看nIDC的值是多少,再在自己的资源文件中找到对应的ID,如你发现nIDC=1012,然后发现

     #define IDC_PROGRESS_FILE 1012 

    接下来在

     void CxxxxxDlg::DoDataExchange(CDataExchange* pDX) 函数中找

     DDX_Control(pDX, IDC_PROGRESS_FILE, m_Check_LCCtrl); 

    删除它就行了,

    我认为原因是你为一个控件进行变量绑定,后来你觉得这个控件没用了,就直接在对话框上把控件删除了,而这里的关联代码却没删除

    找到代码中DDX_Control部分的颜色也为灰色

    VC6默认代码格式中,宏定义、汇编代码 和 部分wizard向导生成代码,都默认是灰色表示。
    具体可以在菜单 Tools - Options 的 Format 中设置或者查询。

    也有说是消息映射

    参考:

    1.dlgdata.cpp line 40 断言失败

    2.CDataExchange::PrepareCtrl(int nIDC)里出错 解决

  • 相关阅读:
    AOJ.866 飞越原野 (三维BFS)
    UVA.129 Krypton Factor (搜索+暴力)
    UVA.10986 Fractions Again (经典暴力)
    UVA.10305 Maximum Product (暴力)
    UVA.725 Division (暴力)
    HDU.3342 Legal or Not (拓扑排序 TopSort)
    HDU.2647 Reward(拓扑排序 TopSort)
    13 成都
    15 沈阳
    14 鞍山
  • 原文地址:https://www.cnblogs.com/code1992/p/10494097.html
Copyright © 2011-2022 走看看