【转】dlgdata.cpp line 40 断言失败

原文网址: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,于是,就出现后来的这个现象了。

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

时间: 2024-10-04 03:15:44

【转】dlgdata.cpp line 40 断言失败的相关文章

iptables:应用防火墙规则:ptables-restore: line 13 failed   [失败]

[[email protected]~]# service iptables restart iptables:将链设置为政策ACCEPT:filter                           [确定] iptables:清除防火墙规则:                                        [确定] iptables:正在卸载模块:                                          [确定] iptables:应用防火墙规则:

(二十二)异常捕获与用例断言失败截图

1.认识异常 2.捕获异常 3.断言 4.用例失败截图 ===================================================== (一) 什么是异常? exception:程序一旦遇到错误后,就会引发异常,如果异常没有被处理或者被捕捉,程序就会回溯来终止运行 异常的分类 常见的异常有哪些? BaseException:所有异常类的基类 Exception:所有异常类的基类,继承于BaseException AssertionError:assert语句失败 Fi

JAVA结合testng断言verify(断言失败不中断继续执行)

原理: 1.自已构造一个断言类,把Assert.assertEquals给try catch住. 2.利用testng的监听类在测试方法运行结束后进行分析. 代码: 断言类: package com.demo; import java.util.ArrayList; import java.util.List; import org.testng.Assert; public class Assertion { public static boolean flag = true; public

Internal Error: Sub-system: CUT, File: /quartus/db/cut/cut_post_syn_util.cpp, Line: 709 name_to_atom_map[iname] == 0

compile led_test的时候出现下面错误: 解决方法:删除工程文件目录下的incremental_db文件夹即可.

linux防火墙开放端口时报ptables-restore: line 13 failed [失败]

linux开放8080端口 在/etc/sysconfig/iptables中添加一行[-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT] 然后service iptables restart,报下面问题 解决方法: 问题原因:对linux防火墙相关配置不熟悉: 参考链接:http://www.mamicode.com/info-detail-1179017.html

解决 NDK编程时cv::OutOfMemoryError(std::size_t), file /hdd2/buildbot/slaves/slave_ardbeg1/50-SDK/opencv/modules/core/src/alloc.cpp, line 52问题

详见:https://github.com/opencv/opencv/issues/4961 http://code.opencv.org/issues/4262 在Mat类型在OpenCV-java的使用方式和在C++中的使用方式不同,在C++中Mat是系统自动管理内存垃圾回收,而在Java中需要通过Mat.release;方法手动释放内存否则会出现标题错误

selenium2入门 断言失败自动截图 (四)

一般web应用程序出错过后,会抛出异常.这个时候能截个图下来,当然是极好的. selenium自带了截图功能. //获取截图file File scrFile= ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); //将图片移动到指定位置 FileUtils.moveFile(scrFile, new File(newFilePath)); 当然在截图之前 需要判断新路径是否合法.下面贴出整体的代码. package commo

MFC中的Debug Assertion Failed 如何查找原因

编写MFC程序时经常会遇到下图所示的断言失败问题 报错对话框中给出了一个目录,是在F盘,但是查找之后会发现电脑里可能根本没有这个目录. 最后发现可以在VS的安装目录下找到这个文件: \atlmfc\src\mfc 这部分路径是固定的. 找到文件,打开,看到报错提示的592行. ASSERT(pSocket!=NULL); 原来是指针为空导致ASSERT报错. 可以在自己程序里把指针处理的地方加个ASSERT或者try-catch一下. 参考文献: [转]dlgdata.cpp line 40 断

错误 CCApplication.cpp function:sharedApplication line:60

CCApplication.cpp function:sharedApplication line:60Edit cocos2dx\platform\android\jni\Java_org_cocos2dx_lib_Cocos2dxRenderer.cppLine 18 to:if (CCDirector::sharedDirector()->getOpenGLView()) { CCApplication::sharedApplication()->applicationDidEnterB