我正在使用dumpbin查看一些库,我注意到所有64位版本都链接到KERNEL32。在64位Windows上没有KERNEL64吗?如果没有,为什么?
我的所有操作系统都是32位,所以我不能只看。谷歌搜索没有任何价值,所以我怀疑没有KERNEL64,但我仍然很好奇为什么会这样。
编辑:我后来发现这个非常有用。 MSDN guide to x64答案 0 :(得分:18)
它总是被称为kernel32.dll
,即使在64位窗口上也是如此。出于同样的兼容性原因,system32
包含64位二进制文件,而syswow64
包含32位二进制文件。
答案 1 :(得分:4)
在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 64'上使用Windows的32位应用程序。子系统,缩写为WOW64,在用户模式下运行,并将32位调用映射到操作系统内核,转换为等效的64位调用。这对于调用程序通常几乎是不可见的.Windows在%windir%\ system32中提供了一组64位DLL,在%windir%\ syswow64中提供了一组等效的32位DLL。实际上,此目录中的大部分二进制映像与32位Windows安装上的system32目录中的相同文件相同。 (在我看来,一个不幸的命名问题是64位DLL存在于system32中,而32位存在于syswow64中,但它存在)