dlgdata.cpp line 40 断言失败

在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,于是,就出现后来的这个现象了。

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

Paho.mqtt.cpp 是一个用于 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)通信的 C++ 库。当 MQTT 连接失败时,可能涉及多个因素,包括但不限于: 1. **服务器连接问题**:如果MQTT服务器不可达或网络中断,连接会失败。检查服务器地址是否正确,以及网络连接是否稳定。 2. **端口错误**:确保客户端使用的 MQTT 默认端口(1883)或者安全端口(8883)是开放的,并且服务器支持这些端口。 3. **认证问题**:如果需要用户名和密码,验证提供的凭据是否正确,并且服务器配置中是否支持所需的认证方法(如 PLAIN、SCRAM-SHA-1 等)。 4. **防火墙和安全组设置**:检查是否有防火墙规则阻止了客户端与服务器之间的通信,或者服务器的安全组配置是否允许来自客户端的连接请求。 5. **库配置错误**:确保paho.mqtt.cpp的配置正确,包括超时设置、重试策略等。 6. **SSL/TLS问题**:如果使用了 SSL 或 TLS 加密,证书、私钥或信任存储可能不正确,导致连接失败。 7. **代码逻辑**:检查连接初始化的代码是否有误,比如连接选项是否正确设置,错误处理是否完善。 当你遇到连接失败时,你可以按照以下步骤进行排查: 1. 查看错误日志:paho.mqtt.cpp 通常会在连接失败时输出错误信息,它们可能是有用的线索。 2. 使用调试工具:逐步执行代码,查看在何时何地抛出的异常。 3. 断点调试:设置断点,观察连接过程中的变量变化,找出问题所在。 相关问题: 1. paho.mqtt.cpp 提供了哪些错误码帮助诊断连接问题? 2. 如何在代码中捕获并处理MQTT连接失败的异常? 3. 如何通过日志跟踪paho.mqtt.cpp的连接尝试和错误?
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值