我需要 x64 和 x86 版本的 C++ redist

h31*_*313 10 dependencies c++ windows-8.1

如果我同时拥有 x64 和 x86 版本的 Microsoft C++ Redist 包,我可以卸载 x86 版本吗?如果我确实卸载了 x86 版本,x64 版本是否会覆盖对 x86 包的依赖项?

Syn*_*ech 13

我需要 x64 和 x86 版本的 C++ redist 吗?如果我同时拥有 x64 和 x86 版本的 Microsoft C++ Redist 包,我可以卸载 x86 版本吗?

这取决于您使用的是 32 位和/或 64 位 VC++ 程序。

如果我确实卸载了 x86 版本,x64 版本是否会覆盖对 x86 包的依赖项?

不,您需要 x86 版本才能运行 32 位 VC++ 程序,而您需要 x64 版本才能运行 64 位 VC++ 程序。

技术说明

大多数程序以类似的方式做很多事情。为了避免“重新发明轮子”,他们将使用,这些是预先编写的函数的集合,可用于减少必须完成的工作量。这很好,但是如果每个程序都包含程序中的通用功能,那么就会浪费大量空间,因为它们都是相同的。另外,如果发现并修复了错误或对库进行了改进,则必须重新编译每个程序以包含修复/改进。

为了解决这些限制,大多数程序将引用外部存储在.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;他们不能使用错误“位数”的库。