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...
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...