好吧,这个问题在我脑海中萦绕了一段时间,但我在网上找不到任何答案。
我知道在 64 位版本的 Windows 中,64 位程序存储在“Program Files”中,32 位程序存储在“Program Files(x86)”中,以组织不同的程序。但是(这不是什么大问题,只是好奇)我注意到,即使我下载了 64 位版本的程序(如 iTunes),它们仍然(默认情况下)安装到“Program Files (x86)”
我的问题是......为什么?
是不是因为存储在“program files(x86)”中的“64位”程序不是真正的 64 位程序......比如 dll 文件仍然使用 32 位架构?
如果两个不同的文件夹甚至没有得到“充分”使用,那还有什么意义呢?
我只是想获得一个更清晰的画面。
答案1
简而言之:
安装文件夹没什么区别
32 位程序可以安装到
Program Files
或Program Files (x86)
64 位程序可以安装到
Program Files
或Program Files (x86)
64 位与 64 位兼容不同
一些纯 32 位的软件被宣传为 64 位兼容的。它的宣传方式可能会产生误导——您可能会认为该软件实际上是 64 位的,但实际上它是 32 位的,但兼容 64 位。
软件可由 32 位和 64 位组件组成
这非常常见。许多软件由 32 位和 64 位 DLL/EXE 组成。供应商可以决定软件是否安装到Program Files
或Program Files (x86)
。
重点是什么?
想想看。我确信是有原因的,但就我而言,这种划分毫无意义。我找到了一些信息,读起来很有趣……
http://www.howtogeek.com/129178/why-does-64-bit-windows-need-a-separate-program-files-x86-folder/
答案2
misha256 很好地解释了情况,但你特别问了为什么他们决定制作两个程序文件目录。这样做的原因是,这种设计使针对两个系统的软件分发更加容易。由于有两个程序文件目录,应用程序可以同时安装 32 位二进制文件和 64 位二进制文件,而无需使用单独的文件名。有很多方法可以做到这一点,但您看到的方法就是他们选择的方法。他们这样做的主要原因是这种布局最适合向后兼容。使用程序文件除了路径中“ (x86)”的细微差异外,仍将完全相同地工作(但只要程序使用相对于 %PROGRAMFILES% 的路径,这无关紧要 [它应该一直这样做])。WOW64 能够简单地修改 32 位应用程序的 %PROGRAMFILES% 的值,这样它们就只能看到 %PROGRAMFILES% 下的 32 位二进制文件。