7

私のプログラムにはMSVCP100.dllとMSVCR100.dllに依存するいくつかのdllが含まれていますが、Win7ではプログラムは問題なく実行されますが、Win8ではこれら2つのdllを見つけることができませんでした。Win8にはデフォルトでVCRedistがインストールされていないことに気付いたので、プログラムを有効にするにはVCRedistをインストールする必要があるようです。

問題は、VCRedistがインストールされているかどうかを確認するにはどうすればよいですか?

レジストリ[1] [2]を検索することで実行できるようです。ただし、VCRedist(VC2012,2010,2008,2005 ...)には多くのバージョンがあるようですので、これらすべてのレジストリキーを確認する必要がありますか?

4

2 に答える 2

12

DLLはMSVCR100.dllに依存しているため、VC2010用のVCRedistを見つける必要があります。

「MSVCR」または「MSVCP」の後の数字は、Visual Studio x10の内部バージョンです。http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Version_historyには、さまざまなバージョンの値がリストされています。

HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86Visual Studio 2010の場合、 32ビットアプリケーション/DLLおよびHKLM\SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x6464ビットアプリケーション/ DLLの[インストール済み]の値を確認することで、ランタイムが既にインストールされているかどうかを検出できます。

Visual Studio 2010およびそれ以前のバージョンの場合、http://blogs.msdn.com/b/astebner/archive/2010/05/05/10008146.aspxに、ランタイムがインストールされているかどうかを検出する方法が詳しく説明されています。

Visual Studio 2012では状況が変わり、VCRedistキーは存在しなくなりました。代わりInstalledに、regキーの値を確認できます(32ビットアプリケーションの場合)Software\Microsoft\VisualStudio\11.0\VC\Runtimes\x86

于 2013-01-29T00:46:15.917 に答える
2

VCRedistのインストーラー(とにかくプログラムに同梱する必要があります)を実行するだけで、それが自動的に機能しますゲームは、同じ方法でDirectXをインストールしようとします。

于 2012-09-28T10:14:29.590 に答える