我有一个在32位Vista系统上运行的cmd文件。
我注意到代码中有对system32驱动程序文件夹的引用。
我想知道这段代码在64位Windows 7系统上是否能够运行。所以我的问题是:64位系统是否包含system32文件夹?
非常感谢任何回复。
我有一个在32位Vista系统上运行的cmd文件。
我注意到代码中有对system32驱动程序文件夹的引用。
我想知道这段代码在64位Windows 7系统上是否能够运行。所以我的问题是:64位系统是否包含system32文件夹?
非常感谢任何回复。
64位Windows操作系统中的System32文件夹实际上包含了64位文件,而在WOW64下运行的32位程序通常会在System32中查找它们可以调用的32位DLL等文件,但它们会发现64位文件。因此,操作系统将所有32位应用程序对System32文件夹的请求重定向到包含32位系统文件的SysWOW64文件夹。
system 32
文件夹包含所有的 64位 DLL
,而 SysWOW64
文件夹包含所有的 32位 DLL
?什么鬼?为什么不是用 System32
来存放 32位 DLL
,而使用 System64
存放 64位 DLL
呢? - Braden BestWindows有一项名为WoW 64(Windows-on-Windows 64-bit)的技术,允许32位应用程序(即使是使用C/C++等语言编写的已编译应用程序)在64位Windows上运行。
除了System32文件夹外,64位Windows安装还有一个名为SysWow64的文件夹,其中包含您在System32中找到的文件的32位版本。
需要说明的是,在从32位进程运行时,对System32的引用会被重定向(除非进程禁用此重定向,这是可能的)。因此,如果您有一个引用System32的.CMD文件,它实际上将从SysWow64目录中读取。
Windows
on
Windows64
:
问题在于这些32位应用程序应该把它们的32位文件存储在哪里,并配置它们的32位DLL的位置,并加载32位操作系统支持文件?
我们已经知道本地应用程序存储它们的东西的位置了。
| Native Application |
|---------------------|
| C:\Windows\System32 |
| C:\Program Files |
| HKCU\Software |
| Native Application | Emulated 32-bit |
|---------------------|---------------------------|
| C:\Windows\System32 | C:\Windows\SysWOW64 |
| C:\Program Files | C:\Program Files (x86) |
| HKCU\Software | HKCU\Software\Wow6432Node |
C:\Windows\System32
,它必须得到64位文件C:\Windows\System32
,它必须得到32位文件| Native Application | Emulated 32-bit asks for | Is actually given |
|---------------------|---------------------------|---------------------------|
| C:\Windows\System32 | C:\Windows\System32 | C:\Windows\SysWOW64 |
| C:\Program Files | C:\Program Files | C:\Program Files (x86) |
| HKCU\Software | HKCU\Software | HKCU\Software\Wow6432Node |
Windows 7 64位有一个System32文件夹。
然而,你的文件是否仍能运行是一个更复杂的问题。它可能会,完全取决于它所依赖的内容;如果它以错误的方式依赖驱动程序,则会失败,因为32位驱动程序在64位系统上无法工作。