「MSVCP~.dll」「MSVCR~.dll」「VCRUNTIME~.dll」がない時の対処法

  • 2020年8月13日
  • 2020年8月13日
  • PC
  • 1590view
  • 0件
PC

Visual Studio で実行ファイル(.exe)を生成し、他のPCでそのファイルを実行した場合に、

「MSVCP140D.dll が見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。」

などとシステムエラーのポップアップが出たことがある人は結構いると思います。

本記事では、そんな人のために解決策を2つ紹介します。

1つ目、Visual Studio のランタイムをインストール

1つ目は、exeを生成したパソコンではないPCの方で、必要なファイルを準備する方法です。

まずは、どの年代のVisual Studio でつくられた実行ファイルなのかを調べます。

以下が表です。該当するバージョンを覚えてください。

  • Visual Studio 2010 → 「msvcp100.dll」「msvcr100.dll」
  • Visual Studio 2012 → 「msvcp110.dll」「msvcr110.dll」
  • Visual Studio 2013 → 「msvcp120.dll」「msvcr120.dll」
  • Visual Studio 2015 → 「msvcp140.dll」「msvcr140.dll」
  • Visual Studio 2017 → 「msvcp140.dll」「msvcr150.dll」「vcruntime140.dll」
  • Visual Studio 2019 → 「msvcp140.dll」「msvcr160.dll」「vcruntime140.dll」

ここで問題なのが、2015~2019で被っているものがあるということです。

被っているものは分かりませんので、まずは2019のランタイムをインストールするということが必要になります。そこから順番にバージョンを落としていきます。

最初から何年版で作ったのかを知っていればいいのですけどね…

入手先は、以下のMicrosoft公式ページからです。

https://visualstudio.microsoft.com/ja/downloads/

最初は以下の画面かと思います。

2019版ランタイム

現在の最新版である「Visual Studio 2019」のランタイムは、以下の画像にある「その他のツールとフレームワーク」にあります。まずは、それをクリックしてください。

「再頒布可能パッケージ」と書かれているところで、ご自分のPCにあった環境(x64, ARM64, x84のどれか)にチェックし、ダウンロードしてください。

ダウンロードファイルを任意の場所に保存し、実行してください。以下の画面になるはずです。

インストールが終わると以下の画像のようになります。

再起動してください。

2019以前のバージョン

2019以前のバージョンは、最初の画面から、

下にスクロールして、「古いバージョンのダウンロード」というところをクリックします。

次にそのページの下の方にある「再頒布可能パッケージおよびビルドツール」をクリックして展開してください。

下の画像が展開されたページになります。

必要なバージョンのランタイムをダウンロードしてください。

それぞれ、「Visual Studio 2010」「Visual Studio 2012」「Visual Studio 2013」「Microsoft Visual C++ 2015」「Visual Studio 2017」があります。

2つ目、リソース化

相手方に必要なランタイムファイルを用意させないために、exeファイルの中に一緒に入れることができます。

つまりは、リソース化ですね。

その方法を説明します。

まずは、Visual Studio のソリューションを開きます。

その後に、実行ファイル(.exe)を生成するプロジェクトの「プロパティ」を開きます。

該当するプロジェクトを右クリックで一番下の「プロパティ」をクリックしてください。

すると、以下の画像のようにポップアップ画面が出ます。

その中で、順番に「構成プロパティ」→「C/C++」→「コード生成」の中にある「ランタイム ライブラリ」という項目で、最初はデバッグ状態ですから「マルチスレッド デバッグ (/MDd)」となっているはずです。

そこで、その項目を

デバッグなら「マルチスレッド デバッグ DLL (/MDd)」から「マルチスレッド デバッグ (/MTd)」

リリースなら「マルチスレッド DLL (/MD)」から「マルチスレッド (/MT)」

にします。

変更してOKを押します。

そして、その後にビルドしてexeを生成すればランタイムファイルも一緒にリソース化されて実行ファイルの中に入れられることになります。

これで一件落着です。

どのWindowsPCでもexeを動かせます。

最新情報をチェックしよう!