使用_set_se_translator和编译标志
using _set_se_translator and compilation flags
文档说明"在使用_set_se_translator时必须使用/EHa ".
我的问题是:/EHa应该用于项目中的所有文件/捕获异常的项目中的所有文件,或者只是在调用_set_se_translator的文件中?
不仅需要捕获异常的函数,还需要抛出和传播异常的函数。对_set_se_translator
本身的实际调用可能不需要用/Eha编译,但为什么不一致?
检查后,我必须不同意之前所说的所有实例都需要用/EHa编译。我编写了一个小程序:
-
崩溃代码
__declspec(dllexport) void crashMe() { *((int*)0)=0; }
- 调用try/catch中其他地方的代码
- 除非使用/EHa编译调用代码,否则程序将崩溃
- 没有
_set_se_translator
,异常只能在catch(...)
中捕获
相关文章:
- 即使使用调试编译标志,表达式也是"optimized out"
- 在 CMake 中添加全局编译标志
- 如何在 clang 的自动会议中检查支持编译标志
- CMake:如何在Visual Studio环境中将依赖于模式的编译标志传递给nvcc
- CMake:替换接口目标的编译标志
- GCC - 包含编译标志的宏
- 覆盖单个文件的编译标志
- 通过宏定义编译标志(C++11 和优化)
- 如何强制 Netbeans 只使用 -ggdb 编译标志而不使用它,同时在 Makefile-Debug.mk 中自动发
- 覆盖来自 R 的C++编译标志的系统默认值
- 是否可以在编译时间作为宏上检测GCC编译标志
- 如何将编译标志 -g 添加到 make 文件
- "-Bdynamic"编译标志有什么作用?
- 如何在cpp文件(C++)中设置编译标志
- Qmake 不使用 stdc++11 编译标志
- 如何在 CMake 文件中添加链接器或编译标志
- CMake-删除单个翻译单元的编译标志
- 添加 -fPIC 编译标志后"Recompile with -fPIC"错误仍然存在
- 在不同的编译单元中使用不同的编译标志编译相同的头
- c++链接和编译标志