TL; DR:
总而言之,不是,没有必要;他们可能只使用了一个文件夹,不,Windows的外观与从一个位置或另一个位置运行的程序没有不同。
好吧,似乎每个人都对此发表意见,所以我丢给我2美分。其他人已经对Microsoft 为什么选择为32位和64位版本的程序创建单独的顶级文件夹的原因进行了猜测,因此我将保留这一部分(最好的原因是David解释说,它是方便程序员)。当然,即使那样,它仍然没有完全解决直接的问题,为什么这甚至是必要的?,答案大概是:不是。
相反,我将解决问题的主体
Windows是否会以某种方式与“程序文件(x86)”用尽的程序呈现不同的外观?
并非如此,但是程序的位置会影响行为,但不会影响您的想法。
当您运行程序时,Windows会设置一个可以在其中运行程序的环境(我的意思是在内存,寻址等方面,而不仅仅是环境变量)。此环境取决于可执行文件的内容(内部的32位和64位程序不同)。在64位系统上运行32位程序时,该程序将在模拟32位环境的32位子系统中运行。它称为WoW64(WoW64代表Windows在64位Windows上),类似于使用NTVDM在XP中运行16位应用程序的方式。
当你有或没有管理员权限运行一个程序,它会影响它是如何运行的,但位置应不影响它(虽然也有像一些司机例如位置依赖的一些例子)。
(我使用的是另一台计算机,因此我不能依靠浏览器的历史记录来回溯我的步骤,但是前几天,在回答此SU问题时,我最终遇到了这个SO问题,导致我进入Google PROCESSOR_ARCHITEW6432,从而导致了该SO问题,此Microsoft博客文章。)
一路上的某个地方,我读了一个StackOverflow帖子,内容关于环境变量如何%processor_architecutre%
根据运行命令提示符的位置给出不同的结果(我将尝试查找确切的引用)。
答案是由于运行命令提示符是32位还是64位版本(即from System32\
或SysWoW64\
)而引起的。换句话说,虽然位置似乎影响程序的行为,但这仅是因为程序的版本不同,而不是因为Windows以特殊方式对待文件夹。
这是有道理的,因为可执行文件的内容决定了它是32位还是64位,因此您可以将同一程序(例如foobar32.exe
和foobar64.exe
)的32位和64位副本放在同一文件夹中,以及何时放置。执行它们,它们将被正确加载(64位版本将在本地运行,而32位版本将在WoW64仿真层中运行)。
FreePascal允许您安装DOS和Windows版本,它们位于同一文件夹中:%programfiles%\FreePascal
。它通过保持可执行文件(管理不同的架构.exe
,.sys
,.dll
,.ovr
在不同的文件夹等)和共享的资源文件如图片,源文件等)没有技术理由,这可能不是也可以支持32位和完成程序的64位版本。就像David所说的那样,如果程序员保持独立(即使用变量使它看起来像只有一组文件,等等)对程序员来说会更容易。