C++ 文件打开对话框崩溃

C++ 文件打开对话框崩溃,c++,winapi,exception,C++,Winapi,Exception,我在我的应用程序中遇到了奇怪的崩溃,原因是文件打开对话框 应用程序是用C++编写的(Visual Studio 13中有最新的补丁),直接调用Win32 API,运行在Windows 10上。 要使应用程序崩溃,我只需打开文件打开对话框(打开到d:drive),移动到顶部的文件夹输入字段并键入C(计划更改为C:drive),这将导致此未处理的异常错误 Unhandled exception at 0x5BAA7527 (ieframe.dll) in app.exe: 0xC00000FD:

我在我的应用程序中遇到了奇怪的崩溃,原因是文件打开对话框

应用程序是用C++编写的(Visual Studio 13中有最新的补丁),直接调用Win32 API,运行在Windows 10上。 要使应用程序崩溃,我只需打开文件打开对话框(打开到d:drive),移动到顶部的文件夹输入字段并键入C(计划更改为C:drive),这将导致此未处理的异常错误

Unhandled exception at 0x5BAA7527 (ieframe.dll) in app.exe: 0xC00000FD: 
Stack overflow (parameters: 0x00000000, 0x05132000).
然后,该未处理的异常将终止应用程序

如果在发布模式下在调试器内运行相同的应用程序,则调试器内会出现相同的异常:

调试器不显示任何调用堆栈,因为崩溃实际上在Windows的深处(即ieframe.dll内部)

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

另外,如果我现在再次打开文件,现在也没有例外

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

因此,看起来好像是因为调试器捕获了异常,我的应用程序没有崩溃,因为在调试器外部运行时,未捕获的异常会杀死应用程序

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


有什么想法吗?

原来这是发布版本设置的问题。特别是它与堆栈链接器设置有关。

作为“深入Windows”并不阻止显示调用堆栈。您甚至可以通过使用@ReazMurshed来获得符号信息。此答案中没有一个链接。请仔细复习。