我正在查看一些带有 dumpbin 的库,我注意到所有 64 位版本都链接到 KERNEL32。64 位 Windows 上没有 KERNEL64 吗?如果不是,为什么?
我所有的操作系统都是 32 位的,所以我不能只看。谷歌搜索没有带来任何有价值的东西,所以我怀疑没有 KERNEL64,但我仍然很好奇为什么会这样。
编辑:我后来发现这非常有用。 x64 的 MSDN 指南
我正在查看一些带有 dumpbin 的库,我注意到所有 64 位版本都链接到 KERNEL32。64 位 Windows 上没有 KERNEL64 吗?如果不是,为什么?
我所有的操作系统都是 32 位的,所以我不能只看。谷歌搜索没有带来任何有价值的东西,所以我怀疑没有 KERNEL64,但我仍然很好奇为什么会这样。
编辑:我后来发现这非常有用。 x64 的 MSDN 指南
它总是被称为kernel32.dll
,即使在 64 位窗口上也是如此。system32
这与包含 64 位二进制文件和 32 位二进制文件的兼容性原因相同syswow64
。
在 64 位版本的 Windows 上,“kernel32.dll”之一包含 64 位代码,但仍称为 kernel32.dll。这至少是误导
希望以下链接将为此提供解决方案
http://www.howzatt.demon.co.uk/articles/DebuggingInWin64.html
http://www.viva64.com/en/l/0002/
64 位 Windows 提供了这样一个“开箱即用”的环境,并使用“Windows on Windows 64”子系统(缩写为 WOW64)支持 32 位应用程序,该子系统在用户模式下运行并将 32 位调用映射到操作系统内核转换为等效的 64 位调用。这通常对调用程序几乎是不可见的。Windows 在 %windir%\system32 中提供了一组 64 位 DLL,在 %windir%\syswow64 中提供了一组等效的 32 位 DLL。实际上,该目录中的大部分二进制映像与 32 位 Windows 安装上的 system32 目录中的相同文件相同。(在我看来,一个不幸的命名问题是 64 位 DLL 存在于 system32 中,而 32 位 DLL 存在于 syswow64 中,但确实存在)