繁体   English   中英

可以针对32位DLL进行64位EXE链接吗?

[英]Can a 64 bit EXE link against 32-bit DLLs?

我问,因为我注意到许多64位EXE链接到看似32位的DLL。

例如,我的64位MFC应用程序链接到user32.dll, urlmon.dll, wininet.dll - 所有这些都是驻留在windows \\ system32中的32位DLL。

这是一些适用于这些DLL的MS特定的魔法,还是那些需要使用传统32位DLL的64位EXE的后向兼容性?

您不能将64位EXE链接到32位DLL,反之亦然。 在64位Windows操作系统上,Windows \\ System32中的DLL实际上是64位DLL。 32位版本在Windows \\ SysWow64中。

从64打电话给32,当然可以。 (在Windows中,这称为WOW,这意味着Windows上的Windows)。 但是,反之亦然。

在这里您可以解释如何:

http://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/

希望它服务。

最新版本的Dependency Walker(在这里找到: http//www.dependencywalker.com/ )解决了这个问题。 它找到了正确的DLL,并避免了不准确的错误。

(我迟到了,但是当我遇到类似的问题时谷歌仍然发现了这个问题。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM