为什么64位进程不能使用32位dll?

时间:2013-10-04 22:18:03

标签: windows winapi dll 32bit-64bit

在这篇文章中,我讲的是使用C ++和Win32 API创建的本机Windows应用程序和DLL。

从帖子Can I load a 32 bit DLL into a 64 bit process on Windows?我明白64位进程不能直接使用32位DLL。解决这个问题的一种方法是在32位进程中托管DLL并使用某种形式的IPC。 既然如此,这背后的原因是什么? 为什么 64位进程不能使用32位DLL? 它可能是x86和x64指令集之间的差异吗?

1 个答案:

答案 0 :(得分:0)

如果传递给32位代码的地址有任何高于32位的位,则由于指针大小不匹配而丢失,并且很可能导致AV。