能否对32位的DLL一个64位的EXE的链接?链接、DLL、EXE

2023-09-07 21:58:58 作者:一輩子那都是骗傻子的

我问,因为我注意到,很多64位的EXE反对什么似乎是32位DLL链接。

I ask because I noticed that many 64 bit EXEs link against what appear to be 32-bit DLLs.

例如,对 user32.dll中,urlmon.dll中,的wininet.dll 我的64位MFC应用环节 - 所有这些都是驻留在Windows 32位的DLL \ SYSTEM32。

For example, my 64 bit MFC app links against user32.dll, urlmon.dll, wininet.dll - all of which are 32 bit DLLs that reside in windows\system32.

因此​​,这是一些MS适用于这些DLL,或者是有向后兼容性,因为它是为那些需要使用传统的32位DLL 64位的EXE具体的魔术?

So is this some MS specific wizardry that applies to these DLLs, or is there backward compatability, as it were, for 64 bit EXEs that need to use legacy 32 bit DLLs?

推荐答案

您可以不支持64位的EXE链接到32位的DLL,反之亦然。在64位Windows操作系统,在Windows \ System32下的DLL文件实际上是64位的DLL。 32位版本在Windows \ SysWow64文件。

You cannot link 64-bit EXEs to 32-bit DLLs or vice versa. On a 64-bit Windows OS, the DLLs in Windows\System32 are actually 64-bit DLLs. The 32-bit versions are in Windows\SysWow64.