在这篇文章中,我讲的是使用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指令集之间的差异吗?
答案 0 :(得分:0)
如果传递给32位代码的地址有任何高于32位的位,则由于指针大小不匹配而丢失,并且很可能导致AV。