web-dev-qa-db-ja.com

Visual-C ++-2017バイナリはVC ++-2015と互換性がありますか?

スティーブが教えてくれます あれVC 2015とVC 2017は実際(そうなる))バイナリ互換性があります

zeroinfo wrtが見つかりました。これは 2017(RC)のリリースノート にあります-または、そのことについてはほとんどどこにでもあるので、ここに行きます:

  • C++(C++インターフェイス)DLLでビルドされた VC++-2017 バイナリは、DLLでビルドされたVC++-2015と互換性がありますか?
  • 2017と2015は同じ(動的) ランタイムライブラリ を使用していますか?
  • もしそうなら、もしあれば、プラットフォームツールセットVisual Studio 2017 (v141)Visual Studio 2015 (v140)runtimeの違いは何ですか? (*)

(*):ええ、私は実際に2017 RCをインストールしてインストールしました、そして表面で見ることができるものから、少なくともidenticalMSVCRTは使用済み、つまりmsvcp140.dllおよびvcruntime140.dll(プラットフォームツールセットが「v141」と呼ばれているにもかかわらず。

23
Martin Ba

はい、141ライブラリと140ライブラリはほとんど同じです。バージョンが並んでいる問題のためにぶつかった。 VisualC++ 2015のv140ツールセットとVC++ 2017のv141ツールセットはバイナリ互換です。

21
apardoe

マイクロソフトはCRTを段階的に更新しています。

Visual C++ 14.0(2015)CRTには4つのファイルがあります。

  • vcruntime140.dll(Cランタイム、リファクタリングされたmsvcr * .dllから)
  • concrt140.dll(並行処理ランタイム、msvcr * .dllからも)
  • msvcp140.dll(C++ランタイム)
  • vccorlib140.dll(C++/CXプラットフォーム:: *)

Visual C++ 14.1(2017)CRTは2つのファイルのみを追加します。

Visual C++ 14.2(2019)CRTは2つのファイルのみを追加します。

上記の追加機能の一部を使用しない場合、バイナリは古いバージョンのCランタイムで動作します。

0
dolly17107