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を動かせます。