ABI-视觉工作室c库的兼容性

时间:2017-02-01 09:03:17

标签: c visual-studio abi universal-crt

据我所知(除了从VS2015切换到VS2017的明显例外),Microsoft使ABI在每个版本的Visual C ++工具链之间进行了重大更改。因此,如果我想分发库的二进制版本,我必须为我想要支持的每个新版本的VS分发一个单独的版本。

现在我的问题是:

  • 纯c-library也是如此吗?
  • dll和静态库的答案有何不同?
  • MS是否有关于未来目标的官方政策?

(特别是根据refactoring and stabilization of the crt

如果这是相关的,我会满足于特定于Win10的答案,但我也对所有Windows版本感兴趣,因为(包括)Win7。我感兴趣的VS Studio的版本是VS2013 / 15/17,并且 - 就任何预测而言 - 将来的版本。

1 个答案:

答案 0 :(得分:0)

纯C的ABI肯定是稳定的。您可以混合使用不同VisualStudio版本生成的DLL,只要您还具有正确的MSVCRT *依赖项(如果您使用静态libc构建它们,这不适用)。

但是你必须特别注意传递指针(参见http://siomsystems.com/mixing-visual-studio-versions/Library ABI compatibility between versions of Visual Studio