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

详细描述了在Win7 64位环境下使用Visual Studio 2010创建MFC应用时遇到的CFileDialog DoModal异常崩溃问题,并提供了一个临时解决方案:卸载intel显示选项的右键菜单控件。问题原因未知,MFC源码中未找到直接问题所在。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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




然后问题就这样被莫名其妙的解决了,到底是什么问题呢?






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值