据我所知(除了从VS2015切换到VS2017的明显例外),Microsoft使ABI在每个版本的Visual C ++工具链之间进行了重大更改。因此,如果我想分发库的二进制版本,我必须为我想要支持的每个新版本的VS分发一个单独的版本。
现在我的问题是:
(特别是根据refactoring and stabilization of the crt)
如果这是相关的,我会满足于特定于Win10的答案,但我也对所有Windows版本感兴趣,因为(包括)Win7。我感兴趣的VS Studio的版本是VS2013 / 15/17,并且 - 就任何预测而言 - 将来的版本。
答案 0 :(得分:0)
纯C的ABI肯定是稳定的。您可以混合使用不同VisualStudio版本生成的DLL,只要您还具有正确的MSVCRT *依赖项(如果您使用静态libc构建它们,这不适用)。
但是你必须特别注意传递指针(参见http://siomsystems.com/mixing-visual-studio-versions/和Library ABI compatibility between versions of Visual Studio)