文件打开对话框崩溃

时间:2015-11-08 05:20:48

标签: c++ winapi exception

我的应用程序遇到了奇怪的崩溃,这是由文件打开对话框引起的。

应用程序是用C ++编写的(带有最新补丁的Visual Studio 13)并直接调用Win32 API并在Windows 10上运行。

要使应用程序崩溃,我只需打开文件打开对话框(打开到d:驱动器),移动到顶部文件夹输入字段并输入C(计划更改为c:驱动器),这会导致这个未处理的异常错误。

Unhandled exception at 0x5BAA7527 (ieframe.dll) in app.exe: 0xC00000FD: 
Stack overflow (parameters: 0x00000000, 0x05132000).

那个未处理的异常会杀死该应用程序。

如果我在发布模式下在调试器中运行相同的应用程序,我会在调试器中得到相同的异常:

Debugger Crash

调试器没有显示调用堆栈,因为崩溃实际上是在Windows内部(即在ieframe.dll内部)。

但是,如果我点击“继续”,则应用程序运行正常,并在文件打开对话框中将其显示为工具提示。

File Open Dialog

此外,如果我现在重新打开文件第二次,现在没有例外。

最后,如果我在调试模式下运行代码,我根本不会得到任何异常。

所以它看起来是因为调试器捕获了异常,我的应用程序没有崩溃,因为在调试器外运行未捕获的异常会导致应用程序死亡。

此外,看起来某些特定于发布版本的选项可能会导致崩溃,因为调试版本没有错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:-2)

事实证明这是发布版本设置的问题。特别是它与堆栈链接器设置有关。