注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itas109的博客

http://blog.csdn.net/itas109

 
 
 

日志

 
 

dlgdata.cpp line 40 断言失败  

2016-05-23 18:45:18|  分类: VS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://blog.csdn.net/onlyou930/article/details/6384075

 

在VS2010 运行一个C++ 程序,出现下图错误:

一看到这个,我头都大了。关键是 f:/dd/vctools/vc7libs/ship/atlmfc/src/mfc/dlgdata.cpp 这个路径根本在我计算机不存在。但是估计在安装目录下。

联想到最近更新到VS2010_sp1 ,但是发行包:

en_visual_c++_2010_sp1_redistributable_package_x86_651767

没安装,安装后再试,还是出错。

为了找到dlgdata.cpp 我用了下面的自己写的搜索工具,

搜到后,用工具打开该文件,然后在打开的记事本上点击:查看->状态栏,然后定位到40行:

总算知道大概了,在谷歌上搜索关键词:CDataExchange::PrepareCtrl ,第一个搜索结果,

http://blog.csdn.net/zipper9527/archive/2009/06/19/4282229.aspx

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

关键是我不知道我的nIDC 是多少,后来发现有好多个nIDC,因为我绑定了很多变量。既然如此,那就把 dlgdata.cpp 拖到当前项目的vs2010 环境,打开dlgdata.cpp后,在第40行处设断点,点绿色运行按钮,很快到断点处了。

哈哈,nIDC找到了,是1008。

然后找到 对应的 ID_Edit1。

然后按照

http://blog.csdn.net/zipper9527/archive/2009/06/19/4282229.aspx

注释掉相关行

//DDX_Control(pDX, IDC_Edit1, m_xxxx);

并把IDC_Edit1注释掉,m_xxxx 也注释掉,

再次运行,再也没有命中断点了。Yeah!!!

分析原因:原来当初设置了一个文本框控件Eidt1,后来给它绑定到一个变量,然后觉得不好,又把这个控件替换成ComboBox,于是,就出现后来的这个现象了。

结论:以后删除控件前,先取消对控件的变量绑定,然后再删除控件。

  评论这张
 
阅读(61)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017