在64位应用程序中加载32位DLL库

有没有办法加载一个32位的DLL库(与LoadLibrary相同的用法)我想与GetProcAddress一起使用该函数。

我看着WOW,但它似乎并没有提供function。 该function应该存在,因为像DependencyWalker这样的工具能够读取一个32位DLL的符号,即使它的64位。

谢谢

对不起,但是你只能加载一个32位的DLL到一个64位的进程,当你加载DLL作为一个数据文件。 你不能执行代码。 http://support.microsoft.com/kb/282423

Microsoftbuild议您使用进程间COM使用64位应用程序的32位代码。 这里有一篇文章解释了这个过程http://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/它不好玩。;

读取32位可执行文件和执行32位可执行文件之间有区别。 我不相信Windows提供任何function来做到这一点。

唯一可能的方法是创build一个32位的进程,加载dll,然后进行进程间通信,在两个进程之间传递结果。

如果您只想从中获取资源,则可以将其作为数据文件加载:

LoadLibraryEx(exeName, NULL, LOAD_LIBRARY_AS_DATAFILE); 

然后FindResource调用FindResource