将x32 lib与x64进程集成的最佳方法是什么(不将lib转换为x64)?

时间:2010-04-18 07:21:02

标签: windows 64-bit

我继承了一个在x32中编译的lib,我无法将其编译为x64。 我想可能是用x32进程封装lib然后通过调用CreateProcess函数win api在x64进程中运行它。 然后我将使用共享内存来传输API lib x32接口与x64进程之间的数据。

我在这里想念一下(看起来很复杂)吗?

2 个答案:

答案 0 :(得分:3)

他们回答的是你不能直接这样做。进程是32位或64位。 64位进程无法加载32位代码。

是的,您必须在32位进程中运行32位代码,并在它与64位进程之间使用某种类型的接口。

根据您的代码,这可能需要做很多工作。

执行此操作的最佳方法是将32位代码包装在一组COM API中,并将其作为64位进程的proc COM服务器运行。然后,COM将完成从一个进程到另一个进程的编组信息的所有工作。

无论你做什么;要敏锐地意识到这样做有很多开销。错误处理是另一个重要问题。

我建议您不要开发自己的共享内存接口。除非界面非常简单,否则获得更正可能非常具有挑战性。

您也可以直接使用RPC:请参阅this link

答案 1 :(得分:2)

我认为您可以将其暴露为32位COM +服务器并从64位应用程序中使用它。它将是由OS托管的独立进程。在我看来比共享记忆容易得多。只是想法,我从未尝试过。