c++ - __try 和 __except 在发布版本中不起作用

标签 c++ seh

<分区>

在我的程序中,我确实需要使用 SEH 异常处理程序,它可以捕获 AccessViolation 等错误,但处理程序仅在调试版本中工作。

我在发布版本中启用了相同的选项,但它不起作用。

如何在 Release 模式下启用 SEH?

谢谢!

__try { /* crash code */ }
__except(EXCEPTION_EXECUTE_HANDLER { MessageBox("Crash prevented"); }

在 Debug 构建模式下工作,但在 Release 模式下不工作(崩溃)。

最佳答案

在尝试更多设置后,我找到了解决方案。 在发布配置中,我必须在“代码生成”页面中激活“基本运行时检查”以启用 SEH 异常处理程序。

“基本运行时检查”选项不能与启用的任何优化一起使用。

关于c++ - __try 和 __except 在发布版本中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19202497/

相关文章:

c++ - 使用花括号初始化临时聚合对象

c++ - 仅使用 getName 在主函数中设置字符串名称

windows - Visual Studio 2010 中的编程数据断点

c++ - 如何抛出 EXCEPTION_FLT_UNDERFLOW?

c++ - 模拟硬件异常

c++ - 为什么 mbstowcs 返回 "invalid multibyte character"

c++ - OpenCV - cudaimgproc 错误

c++ - 如何在PCL获取相机参数?

c++ - 如何捕获内存异常?

delphi - 在 C++ Builder 中启用安全异常处理