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

我inheritance了一个用x32编译的lib,我不能将它编译成x64。 我想可能是用x32进程封装lib,然后通过调用CreateProcess函数win api在x64进程中运行它。 那么我将使用共享内存来将API lib x32接口之间的数据传递给x64进程。

我在这里错过了什么(它看起来非常复杂)?

他们的回答是,你不能直接做到这一点。 进程是32位或64位。 一个64位进程不能加载一个32位代码。

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

根据你的代码,这可能是很多工作。

最好的办法是将你的32位代码包装在一组COM代码中,然后把它作为你的64位进程的COM服务器运行。 然后,COM将会把信息从一个过程整理到另一个过程。

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

我鼓励你不要开发你自己的共享内存接口。 除非接口真的很简单,否则这可能是相当具有挑战性的。

您也可以直接使用RPC:请参阅此链接 。

我想你可以把它公开为32位的COM +服务器,并从64位应用程序使用它。 这将是由OS托管的独立进程。 在我看来,比共享内存等更容易。只是想法,我从来没有尝试过。