__try和__except在Release版本中不起作用

时间:2013-10-05 20:40:21

标签: c++ seh

在我的程序中,我真的需要使用SEH异常处理程序,它可以捕获AccessViolation&等,但处理程序仅在Debug构建中起作用。

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

如何在发布模式下启用SEH?

谢谢!

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

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

1 个答案:

答案 0 :(得分:1)

玩完设置后,我找到了解决方案。 在Release config中,我必须激活“代码生成”页面中的“基本运行时检查”以启用SEH异常处理程序。

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