2

我在基于对话框的 MFC 应用程序中添加了一个“打开文件”对话框。现在,在通过按下打开或取消按钮关闭打开的文件对话框后恰好一分钟(!)我的应用程序崩溃了。当它崩溃时,输出中发生了以下事情:

1)一堆Windows线程正在退出;

2)一堆COM异常(0x80010108“调用的对象已与其客户端断开连接”和0x800401FD“对象未连接到服务器”变种)被抛出;

3)最后,出现未处理的异常:0xC0000005:访问冲突读取位置0xfeeefeee,调用堆栈指向ole32.dll。

说我很困惑是轻描淡写的。调用对话框的代码如下:

CFileDialog fileDlg( TRUE, _T(".txt"), NULL, OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST, 
                     _T("Text file (*.txt)|*.txt||"), this);
INT_PTR res = fileDlg.DoModal();

什么会导致这样的事情?

我什至如何调试它?

4

1 回答 1

3

我在 Windows 7 x64 中遇到了这个确切的问题,并且通过在所有尚未选择的 Win32 异常上启用断点(在 VS2015 异常选项卡中),我能够将其缩小到 fundisc.dll 的一个已知问题,该问题已通过可选来自 Microsoft 的修补程序:https: //support.microsoft.com/en-us/kb/2494427

它还解决了我的 PC 上的文件资源管理器窗口在看似随机的时间崩溃的问题。所有这些都是由该修补程序修复的网络 COM 对象中的一些死锁引起的。

于 2016-09-27T17:48:02.730 回答