c++ - x64 上的 mingw dw2 异常

标签 c++ windows mingw x86-64

我正在使用 Clang 在 Windows 上编译一些代码。为了支持这一点,我使用了 MinGW 的 libstdc++。但现在我正在考虑针对 64 位而不是 32 位进行编译,而且我似乎只能找到 SEH 或 SJLJ 异常模型。 Windows x64 是否没有 Itanium ABI 异常?

最佳答案

不,MinGW 不支持 64 位的 DW2 异常。

对于 64 位,您想使用 SEH 异常,这优于 SJLJ 和 DW2。 SEH 异常在没有抛出异常时开销很低(如 DW2),并且在抛出异常时开销很低,并且不会占用过多的空间。

事实上,由于它的优势,您实际上总是想使用 SEH 异常,即使在 32 位下也是如此,但不幸的是,由于 Borland 持有的美国专利,没有 32 位支持(5,628,016).

尽管我预计很快就会实现 32 位支持,因为该专利于 1994 年 6 月 15 日提交并于 1997 年 5 月 6 日发布。如果我正在阅读 “6 月 8 日之前提交的申请, 1995” 规则权利,将意味着其有效期为自发行日(2014 年 5 月 8 日)起 17 年或自申请日(2014 年 6 月 15 日)起 20 年,以较长者为准。
换句话说,该专利应该正好在一个月前到期。

关于c++ - x64 上的 mingw dw2 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24763310/

相关文章:

c++ - 在不关闭程序的情况下写入文件后从文件中获取保存的数据

windows - 转义批处理脚本变量中的引号

c++ - SwitchDesktop 暂时工作,但片刻后切换回来

c++ - 列出导致线程本地单例类崩溃的析构函数

mingw - 使用 Qt Creator 和 MinGW 更改警告级别

c++ - 无法使用 GCC-G++ 包含标准 C++ 库文件

c++ - CHAR_BIT 的更好名称?

c# - 如何最好地将字节数组从 C# 获取到 C++ WinRT 组件

windows - Mercurial : "abandoned transaction found - run hg recover"。恢复不起作用

c++ - 在 apache2 上使用 cgi c++ 处理上传的文件