web-dev-qa-db-fra.com

Visual-C ++ - 2017 est-il compatible avec VC ++ - 2015?

Steve me dit que VC 2015 et VC 2017 sont en fait (va être) binaires compatible .

J'ai trouvé zéro info wrt. ceci dans le notes de publication pour 2017 (RC) - ou à peu près n'importe où d'ailleurs, alors voici:

  • Un C++ (interface C++) DLL construit avec VC++ - 2017 binaire compatible avec un DLL construit par VC++ - 2015?)
  • Est-ce que 2017 et 2015 utilisent la même (dynamique) bibliothèque d'exécution ?
  • Si tel est le cas, quelle est, le cas échéant, la différence d'exécution entre Platform Toolset Visual Studio 2017 (v141) et Visual Studio 2015 (v140)? (*)

(*): Oui, je suis allé de l'avant et j'ai installé le RC 2017, et d'après ce que je peux voir en surface, au moins le identique MSVCRT est utilisé, c'est-à-dire msvcp140.dll et vcruntime140.dll (malgré le jeu d'outils de plate-forme appelé "v141".

23
Martin Ba

Oui, les bibliothèques 141 et 140 sont presque identiques. La version a été remplacée pour un problème côte à côte. Le jeu d'outils v140 dans VisualC++ 2015 et le jeu d'outils v141 dans VC++ 2017 sont compatibles binaires.

21
apardoe

Microsoft a mis à jour leur CRT de manière incrémentielle.

Visual C++ 14.0 (2015) CRT a 4 fichiers:

  • vcruntime140.dll (C Runtime; de ​​msvcr * .dll refactorisé)
  • concrt140.dll (le runtime d'accès concurrentiel; également à partir de msvcr * .dll)
  • msvcp140.dll (Runtime C++)
  • vccorlib140.dll (plate-forme C++/CX :: *)

Visual C++ 14.1 (2017) CRT ajoute seulement 2 fichiers:

Visual C++ 14.2 (2019) CRT ajoute seulement 2 fichiers:

Si certaines des fonctionnalités supplémentaires répertoriées ci-dessus ne sont pas utilisées, le binaire peut fonctionner avec les anciennes versions de C Runtime.

0
dolly17107