您的位置:首页 > 其它

解决一个只在调试运行状态下才出现的bug

2013-02-20 17:28 218 查看
Win7 64位下,Visual Studio 2010,CFileDialog的DoModal异常崩溃。

按照下面步骤,不需要写一个字,全是MFC自己的代码,很容易重现该问题:

1、打开Visual Studio 2010。

2、新建一个MFC Application工程,MFC
Application->OK->finish:





3、添加x64平台配置:









4、调试运行(F5),便会出现一个多文档应用程序:

点击工具栏打开图标,或者File->Open...弹出一个打开对话框(CFileDialog):

5、选择C盘、D盘、或者E盘等,点击“新建文件夹”按钮,或者在空白处点击鼠标右键:



到此,就会看到程序崩溃了:



根据错误信息,好像是已经删除了的堆内存又被修改了,被调试器捕捉到了。

但是从MFC的代码有看不出问题在哪,微软的代码很诡异又改不了,从MFC源码上是解决不了这个问题了。

虽然在非调试运行状态下不会出问题,但这样毕竟让人不爽!

有一个解决方法是:卸载intel显示选项的右键菜单的控件。

regsvr32 /u igfxpph.dll



然后问题就这样被莫名其妙的解决了,到底是什么问题呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐