Is Visual-C++-2017 binary compatible with VC++-201

2019-01-26 03:44发布

问题:

Steve tells me that VC 2015 and VC 2017 are actually (gonna be) binary compatible.

I found zero info wrt. this in the release notes for 2017 (RC) - or pretty much anywhere for that matter, so here goes:

  • Is a C++ (C++ interface) DLL built with VC++-2017 binary compatible with a DLL built by VC++-2015?
  • Do 2017 and 2015 use the same (dynamic) runtime library?
  • If so, what, if any, is the runtime difference between Platform Toolset Visual Studio 2017 (v141) and Visual Studio 2015 (v140)? (*)

(*): Yeah, I actually went ahead and installed the 2017 RC, and from what I can see on the surface, at least the identical MSVCRT is used, that is msvcp140.dll and vcruntime140.dll (despite the platform toolset being called "v141".

回答1:

Yes, the 141 and 140 libraries are almost identical. The version was bumped for a side-by-side issue. The v140 toolset in VisualC++ 2015 and v141 toolset in VC++ 2017 are binary compatible.