【发布时间】:2011-05-07 06:03:26
【问题描述】:
当异常退出 DLL 中的函数时,mingw32 运行时只需调用 terminate std::unexpected,而不是将异常传播到调用 DLL 的代码。这个问题有什么解决方案? DLL 和调用它的应用程序都使用相同的编译器进行编译。
mingw32 支持两种不同的异常机制:SJLJ 和 Dwarf2。他们中的一个是否应该比另一个更好地工作?也许唯一的选择是切换到 MSVC 或 ICC,或者单独更改构建选项会有所帮助?
请注意,甚至 catch(...) 都不会捕获任何异常,甚至内置类型(抛出 1;)也不会,因此它与异常类型的可见性无关。
【问题讨论】:
-
有趣。可能每个库都有静态链接的 C++ 运行时?