Is the official binary incompatibility between VS2017 and VS2015 app vs. dll accurate?

后端 未结 1 1780
你的背包
你的背包 2021-01-07 06:15

TL;DR - The MS docs state that binary compatibility between VS2015 and VS2017 libs is one-way, while I\'d assumed it is necessarily two-way. Where\

相关标签:
1条回答
  • 2021-01-07 06:59

    Microsoft has since updated their docs, the relevant section of the current version of https://docs.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017 reads:

    C++ Binary Compatibility between Visual Studio 2015 and Visual Studio 2019

    ...

    When you mix binaries built with different supported versions of the MSVC toolset, the Visual C++ redistributable that your application runs on cannot be older than any of the toolset versions used to build your app or any libraries it consumes.

    The diff is at https://github.com/MicrosoftDocs/cpp-docs/commit/a505dccfb31eb49c2ffece4dabd24a0a61b1fcb3#diff-d488b4c71be450b2a39cdce495c229bf

    There is no direct GitHub/MS-Docs issue for this, but this limitation makes a lot more sense: It just talks about the compatibility requirements of the redistributable, and requiring a VC runtime version that is at least as current as the newest module in use.

    This, of course, can make sense, as this is not only pure binary compatibility.

    Of course, what I said in the question still is valid: Any (old) VS2015 application must be compatible with the (new) VS2019 redistributable, so I guess all the interface surface that VCRedist-VC14.0 ever exposed should be binary compatible.

    0 讨论(0)
提交回复
热议问题