2011-12-28 141 views
8

所以前段时间我正在研究一个我知道即将推出的问题。我们有一个链接到某个库的32位版本的DLL。这个库没有x64版本可供我们使用,我们在替换它方面没有实际的选择。通过COM在64位进程中使用32位DLL

当我执行这个初步调查时,我发现了一篇或两篇描述64位进程可以通过COM“服务器”使用32位DLL(Windows)的方法。不幸的是,我失去了我已经保存的链接,现在我一直在寻找一个多小时没有运气。

有人在这里熟悉我描述的过程吗?我不能为了我的生活记住我曾经用哪种魔法咒语在搜索中拉出正确的结果,当然,现在是实施时间。预先感谢您提供的任何帮助,我将在此期间继续搜索。

+0

我想你可以通过谷歌搜索“COM代理人”和“找到你的链接回COM +托管“。 – 2011-12-28 19:37:49

+0

@HansPassant:这是我需要的词。谢谢。 – 2011-12-28 19:44:55

+0

(主要是因为其他人陷入了答案)请记住,这样做涉及进程间数据编组,这可能代价高昂 - 它不是自动修复所有问题的银弹。 – snemarch 2011-12-29 11:11:57

回答

5

这可能是不够的,但它可能让你开始:Process Interoperability

在64位Windows中,一个进程外的32位COM服务器可以与64位客户端进行通信,和一个进程外64位COM服务器可以与一个32位客户端进行通信。 因此,如果您有一个不支持COM的32位DLL,则可以将其封装在一个进程外COM服务器中,并使用COM封送来自64位进程的调用。

而且Accessing 32-bit DLLs from 64-bit code

迁移您的32位Windows应用程序在64位机上可能会有问题,如果你有32位的DLL文件,你不能重新写入。 Mike Becker向您展示了如何使用内置IPC机制从64位代码访问32位DLL ...

+0

这就是我正在寻找的链接。谢谢你,先生。 – 2011-12-28 19:44:28

+0

不客气。我有第二个链接添加书签,当我需要它:) – crashmstr 2011-12-28 19:45:36

相关问题