Debug Assertion Failed!

来源:互联网 发布:python识别验证码 编辑:程序博客网 时间:2024/06/07 06:15

相信大家搞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