Debug Assertion Failed!

相信大家搞VC的都遇到这样一个问题


网上有很多解答,然而出现问题的line行数却不尽相同,今天我在界面加了一个组合框CComboBox控件,然后初始化等等。。。一切都没有问题,但是接下来调试的时候却出现以上对话框,其实忽略之后程序也可以继续运行并没有什么问题,但是每次都这样弹出对话框心理很不错,还要手动关闭,作为一个程序员怎么能忍受呢?于是上网查资料看看什么原因。首先有人说是debug版本用到ASSERT宏,我改成release 版本运行果然没有出现这个对话框,但是这也不能找到问题的根本。于是我找到上面所说的那个afxwin2.inl文件然后定位到852行,问题渐渐浮出水面。


注意看852行,出问题的是IsWindow(m_hWnd);这明显就是说我的组合框没有创建成功嘛,怎么会呢,后来我重新审查了一下我的代码才发现一个很重要的问题,那就是我把

m_legSelection.SetCurSel(-1);这行代码写在了构造函数里面了!怎么能这样呢,其实这时候组合框的对象还没有初始化,所以不能调用m_legSelection.SetCurSel(-1)这句话,所以我将这句话放在OnInitDialog();函数里面调用就没问题了。

遇到类似问题的人很多,网上也找不到讲解比较详细地,所以我打算记录自己的解决问题的过程,大家遇到类似问题也可以用同样的思路解决。:-D

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值