从32位进程调用64位dll的LoadLibrary方法

9

我有一个32位的exe程序,需要在检测到操作系统是64位时动态加载64位的dll文件。通过LoadLibrary这个函数是否能够实现这个目标?如果不能,还有其他方法可以达到同样的目的吗?


4
顺便提一下,32位指令集被称为“x86”,而不是“x32”。虽然这在今天看来没有多大意义,但我想8086值得被铭记 :) - sbk
2个回答

12

如前所述,32位代码不能在同一进程中加载64位代码。您将不得不将其加载到另一个进程中(使用CreateProcess()?),并使用IPC进行协调。


1
这是一个在Windows上实现IPC的方法集链接:http://msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx。还可以查看我的另一篇帖子,了解更多实现此操作的方法: https://dev59.com/skbRa4cB1Zd3GeqPyT6_#446615 - Laserallan

2

在同一个进程中不能混合使用64位和32位代码,你需要使用32位版本的DLL。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接