MFC代码调试或者关闭主界面出现致命错误,提示框架无法被kernelbass.dll识别或已缺失

来源:互联网 发布:2017北京程序员工资 编辑:程序博客网 时间:2024/05/20 05:31
开始出现这个错误提示时,个人觉得很奇葩,因为它不是100%出现,第一反应怀疑是代码里使用了空指针NULL,但是代码一大堆,鬼知道哪里使用了NULL指针。
后来使用call stack还是定位出来了,具体步骤如下:
1、查看call stack的致命错误,初步定位引起问题的地方,如下【ShowResult这个函数调用ShowWindowText后就崩溃了,并且崩溃与线程相关】

2、移步showResult函数,并查看时什么对象或指针调用了ShowWindowText函数
3、查看所有调用showResult函数的地方,要特别注意线程内是否调用该函数,因为call stack里显示出现崩溃与线程相关
4、原因:子线程中操作主界面的控件,但当销毁主界面时子线程还在跑,而此时主界面的控件已经不存在,若再操作主界面的任何控件必定崩溃
5、解决方法:子线程内,在使用主界面控件前,判断控件是否为NULL,若为NULL则不操作此控件
其实解决方法还可以使用异常捕获,在指定的地方添加如下处理:try
{
代码块.....
}
catch()
{
}
阅读全文
0 0
原创粉丝点击