【发布时间】:2009-07-12 15:40:53
【问题描述】:
我问是因为我注意到许多 64 位 EXE 链接到看似 32 位的 DLL。
例如,我的 64 位 MFC 应用程序链接到 user32.dll, urlmon.dll, wininet.dll - 所有这些都是驻留在 windows\system32 中的 32 位 DLL。
那么,这是适用于这些 DLL 的一些特定于 MS 的魔法吗,或者对于需要使用旧版 32 位 DLL 的 64 位 EXE 是否存在向后兼容性?
【问题讨论】:
-
我认为我们已经为下一个版本的 Dependency Walker 做好了准备。它有时会以一种误导性的方式处理 64 位可执行文件,并显示一些其他令人讨厌的警告。这些并不是真正的错误,但肯定可以更好地呈现。我认为这类问题是对新版本的 +1。
-
@Eran,我下载了 64 位的最新依赖,它显示依赖 DLL 为 64。
-
实际上有一些魔法——在 Win64 上,64 位 ntdll.dll 被加载到所有进程中,包括 32 位和 64 位。但是你提到的任何 DLL 都没有什么神奇之处。