Contradicting MS statements wrt. Binary compatibility VS2017 vs VS2015?

  • Thread starter Thread starter Martin Ba. _
  • Start date Start date
M

Martin Ba. _

Guest
This is all layed out in detail in this SO question: https://stackoverflow.com/questions/53187152/is-the-official-binary-incompatibility-between-vs2017-and-vs2015-app-vs-dll-acc

The gist is that the MS docs at (C++ Binary Compatibility between Visual Studio 2015 and Visual Studio 2017) state that:

"... Binary compatibility is not guaranteed ... When consuming libraries built with a toolset whose version is greater than the toolset used to compile and link the application ..."

That is, they state that [my-vs2015.exe] together with [my-vs2017.dll] doesn't work, as apparently the "application toolset version" must be greater than any "library tolset version"

However, with regard to the VCRedist libraries, MS states (at https://blogs.msdn.microsoft.com/vcblog/2017/03/07/binary-compatibility-and-pain-free-upgrade-why-moving-to-visual-studio-2017-is-almost-too-easy/) that:

"... The VCRedist is only backward compatible, so you will need to redistribute the latest VCRedist 140 available in VS 2017 with your app ..."

That is, according to this, [my-vs2015.exe] together with [the-latest-msvcrt-2017.dll] is supposed to work, which is just backwards from the requirement from the docs site!

So, what's the deal here: What is actually compatible with what?

Continue reading...
 
Back
Top