64位Windows是否使用KERNEL64?

Dan*_*son 22 windows dll 64-bit systems-programming

我正在用dumpbin查看一些库,我注意到所有64位版本都链接到KERNEL32.在64位Windows上没有KERNEL64吗?如果没有,为什么?

我的所有操作系统都是32位,所以我不能只看.谷歌搜索没有什么值得的,所以我怀疑没有KERNEL64,但我仍然很好奇为什么会这样.

编辑:我后来发现这非常有用. MSDN指南x64

Ben*_*aub 21

它总是被调用kernel32.dll,即使在64位窗口上也是如此.这与system32包含64位二进制文​​件的相同兼容性原因相同,同时syswow64包含32位二进制文​​件.

  • *什么*兼容性原因? (8认同)
  • @Martin这是一个很好的答案:http://stackoverflow.com/questions/949959/why-do-64bit-dlls-go-to-system32-and-32bit-dlls-to-syswow64-on-64bit-windows (2认同)

Pad*_*ula 5

在 64 位版本的 Windows 上,“kernel32.dll”之一包含 64 位代码,但仍称为 kernel32.dll。这至少是误导

希望以下链接将为此提供解决方案

http://www.howzatt.demon.co.uk/articles/DebuggingInWin64.html

http://www.viva64.com/en/l/0002/

http://blogs.msdn.com/b/aaron_margosis/archive/2012/12/10/using-ntfs-junctions-to-fix-application-compatibility-issues-on-64-bit-editions-of-windows。 aspx

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 中,这似乎是一个不幸的命名问题,但确实存在)