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

时间:2010-02-15 09:48:10

标签: dll loadlibrary getprocaddress

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

我看了WOW,但它似乎没有提供功能。功能应该存在,因为像DependencyWalker这样的工具能够读取32位dll的符号,即使它的64位也是如此。

感谢

2 个答案:

答案 0 :(得分:47)

很抱歉,但是当您将dll作为数据文件加载时,只能将32位DLL加载到64位进程中。您无法执行代码。 http://support.microsoft.com/kb/282423

Microsoft建议您使用进程间COM将32位代码与64位应用程序一起使用。这是一篇解释过程的文章http://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/它并不好玩。

答案 1 :(得分:2)

读取32位可执行文件和执行32位可执行文件中的代码之间存在差异。我不相信Windows提供任何功能来做到这一点。

您可能能够做到这一点的唯一方法是创建一个32位进程来加载dll,然后进行进程间通信以在两个进程之间传递结果。