次の(かなり一般的な)問題に直面しています。VS2010またはVS2012でプログラムをデバッグモードで実行していますが、起動時にクラッシュして次のように表示されます。
コンピューターにMSVCP100D.dllがないため、プログラムを開始できません。プログラムを再インストールして、この問題を修正してください。
今、私はいくつかの可能な解決策を見つけましたが、それらのどれも私にとってはうまくいきません:
他にオプションはありますか?
Visual Studio REDISTパッケージは、CRTファイルのデバッグバージョンを展開しません。これは設計によるです。
VS 2012以降では、CRTのDEUBGバージョンを展開する最も簡単な方法は、テストマシンに「リモートデバッグツール」パッケージをインストールすることです。
VS 2012の場合、最新のリモートデバッグツールパッケージは here です。
VS 2013の場合、最新のリモートデバッグツールパッケージは here です。
別のオプションは、DLLのアプリケーションローカル展開を使用することです(つまり、アプリディレクトリにコピーします)。ここでもこれは、テスト目的のみです。アプリケーションを実際に展開するには、CRTの非デバッグバージョンを使用する必要があります。
ただし、開発マシンでこのエラーが発生している場合は、VS 2012がインストールされていると、そのマシンにVS 2012 DEBUG CRTが必要になるため、他の問題が発生します。
UPDATE ::申し訳ありませんが、デバッグCRT DLLは、リモートデバッガービットおよびDirect3D 11とともにリモートデバッグツールパッケージに含まれているはずです。デバッグデバイス。悲しいかな、そうではありません。 デバッグ実行可能ファイルを実行するためのテストマシンの準備 を参照してください。 Program Files (x86) directory in \Common Files\Merge Modules
でMSMを使用するか、Program Files (x86) directory in \Microsoft Visual Studio <version>\VC\redist\Debug_NonRedist\
からDLLをサイドバイサイドでコピーする必要があります。 VSチームはおそらくあなたがすでにそうしていると思っていましたが、リモートツールパッケージにロールすることを彼らに勧めます。
同様の問題(VS 2012で作成されたプロジェクトですが、VS2013を実行していました)があり、次の方法で解決しました。
VS2013(または新しいプロジェクト)でプロジェクト(またはソリューション)を開きます
[プロジェクト]メニューを開き、[プロジェクトのターゲットを変更]オプションを選択します(これは最初のオプションでしたが、適用した後、このオプションは消えました)。
ソリューションを再構築します。
これはデバッグランタイムDLLです。 Visual Studioがインストールされていないシステムで独自のアプリケーションのデバッグビルドを実行したいだけの場合(そしてその場合のみ!)、不足しているDLLを
C:\Windows\System32
(64ビットビルド用)C:\Windows\SysWOW64
(32ビットビルド用)実行可能ファイルが実行されるまでDLLをコピーし続けるだけです。
これがあなたがしようとしていることではない場合は、 https://stackoverflow.com/a/27386721/2279059 を参照してください。これは正確ですが、あまり実用的ではありません。
私はopenCVとC++を初めて使用し、Windows 7、32ビットプラットフォームのVisual Studio Express 2013でopenCV 2.4.10を使用すると同じ問題が発生しました。 OpenCVを使用せずに単純なプログラムを作成した場合、プログラムは実行されましたが、OpenCVを使用すると、不足しているDLLエラーが発生しました。
この投稿 明確にした:
私の問題はVisual StudioではなくOpenCVにあったと思います。 OpenCVは、MSVCP110.dllを必要とするバージョンのビジュアルスタジオでコンパイルされました。別のバージョンのOpenCVを試したり、VS2013を使用してOpenCVを再度コンパイルしたりすることもできましたが、時間がありませんでした。代わりに、dllファイルを他の場所で見つけて、system32フォルダーに配置しました(推奨されているかどうかは不明です)。これで問題が解決しました。ただし、@ slaterが言及したように、セキュリティ上の問題のため、外部のWebサイトからdllをダウンロードすることはお勧めしません。