📜  为什么在64位操作系统中没有system32文件夹?(1)

📅  最后修改于: 2023-12-03 15:06:16.885000             🧑  作者: Mango

为什么在64位操作系统中没有system32文件夹?

在64位操作系统中,有一些程序员可能会奇怪为什么没有system32文件夹,而是有一个名为syswow64文件夹。

1.历史原因

为了兼容32位应用程序,64位 Windows 启动 32 位环境的应用程序时,需要使用一些调用 32 位 DLL 的过渡文件。

在64位 Windows 操作系统中,Microsoft 采取了一种特殊的技术来在操作系统中运行早期32位 Windows 程序所依赖的DLL文件。这项技术被称为 Windows 仿真解决方案。

2.文件路径

在 64 位版本的 Windows 操作系统中:

  • %windir%\System32 存储了 64 位 DLL 文件和二进制文件。
  • %windir%\SysWOW64 存储了 32 位 DLL 文件和二进制文件。

虽然看起来很奇怪,但 SysWOW64 中“WOW”是“Windows-on-Windows”的缩写,表示它是用于 32 位 Windows 应用程序在 64 位 Windows 上运行的 Windows 仿真解决方案。

3.代码示例

如果您需要使用正确的文件路径,请始终使用系统变量(如“%SystemRoot%”)而不是固定的文件路径。

C#示例
string path = Environment.GetFolderPath(Environment.SpecialFolder.System);
PowerShell示例
$env:SystemRoot

无论是在C#还是PowerShell中,都可以通过使用环境变量来获取正确的文件路径。

总之,在 64 位 Windows 操作系统中,需要使用 SysWOW64 文件夹才能兼容早期的 32 位应用程序。