web-dev-qa-db-ja.com

C ++ redistのx64バージョンとx86バージョンの両方が必要ですか

Microsoft C++ Redistパッケージのx64バージョンとx86バージョンの両方を持っている場合、x86バージョンをアンインストールできますか? x86バージョンをアンインストールした場合、x64バージョンはx86パッケージの依存関係をカバーしますか?

8
h313

C++ redistのx64バージョンとx86バージョンの両方が必要ですか? Microsoft C++ Redistパッケージのx64バージョンとx86バージョンの両方を持っている場合、x86バージョンをアンインストールできますか?

32ビットまたは64ビットのVC++プログラムを使用しているかどうかによって異なります。

X86バージョンをアンインストールした場合、x64バージョンはx86パッケージの依存関係をカバーしますか?

いいえ、32ビットVC++プログラムを実行するにはx86バージョンが必要であり、64ビットVC++プログラムを実行するにはx64バージョンが必要です。

技術説明

ほとんどのプログラムは同様の方法で多くのことを行います。 「ホイールの再発明」を回避するために、彼らは libraries を使用します。これは、実行する必要のある作業量を減らすために使用できる事前に記述された関数のコレクションです。それは良いことですが、すべてのプログラムに共通の関数が含まれている場合、それらはすべて同一であるため、多くのスペースが無駄になります。さらに、バグが発見されて修正された場合、またはライブラリに改善が加えられた場合、修正/改善を含めるためにすべてのプログラムを再コンパイルする必要があります。

これらの制限を解決するために、関数を内部的に含める代わりに、ほとんどのプログラムは.dllファイル。このように、それらはすべて同じコードを共有して無駄なスペースを減らし、単一のライブラリファイルを置き換えることですべてを同時にアップグレードできます。

プログラムは、32ビットまたは64ビットにすることができ、特に変数のサイズなどを決定します。問題は、32ビットコードは64ビットコードと互換性がないため、32ビットプログラムは32ビットライブラリを使用し、64ビットプログラムは64ビットライブラリを使用する必要があることです。

したがって、32ビットプログラムがある場合、foobar.exeと64ビットプログラム、foobar64.exe、どちらもVC++ライブラリを使用し、次にfoobar.exe 必要があります \x86\msvc*.dllおよびfoobar64.exe 必要があります \x64\msvc*.dll;誤った「 bitness 」のライブラリを使用することはできません。

12
Synetech

あなたはvcredist x86とx64の両方が必要です、証明したいですか? vcredist 2005 x64がインストールされている場合、vcredist 2005 x86なしでgta ivを実行してみてください。 vcredist 2005 x64およびx86は、Microsoft公式Webサイトで入手できます。

X86およびx64再配布可能ファイルは、それぞれx86およびx64コードのみを対象としています。つまり、x64バージョンはx86コードをカバーせず、その逆も同様です。

一般的にそれらを削除できるかどうかについては、言うのは難しいです。これは、使用しているアプリケーションと、それらのアプリケーションがそれらの再配布可能ファイルを必要とするかどうかによって異なります。それらを削除して問題があるかどうかを確認し、元に戻すのはかなり安全な方法です。

0
Patrick Seymour

削除しないでください。

大規模なベンダーを提供するインストール済みのオペレーティングシステムを確認します。すべてのパッケージ2005/2008/2010/2012 ... x86およびx64が存在します。開発者の多様なプログラムがこれらのライブラリのいずれかを使用する可能性があるためです。

0
STTR