通过COM在64位进程中使用32位DLL [英] Utilizing a 32-bit DLL in a 64-bit process via COM
问题描述
所以前段时间,我正在调查一个我知道即将到来的问题。我们有一个DLL链接到某个库的32位版本。
So some time ago I was investigating an issue that I knew would be coming up soon. We have a DLL that links to 32-bit versions of a certain library. There is no x64 version of this library available to us and we have no practical options in regards to replacing it.
当我进行这个初步调查时,我发现了一两篇文章描述了64位进程可以通过COM服务器使用32位DLL(Windows)的方法。不幸的是,我失去了我保存的链接,我现在已经搜索了一个多小时没有运气。
When I performed this initial investigation I found an article or two describing a method by which a 64-bit process can utilize a 32-bit DLL (Windows) via a COM "server". Unfortunately I lost the links I had saved and I have now been searching for over an hour with no luck.
有人在这里熟悉我描述的过程吗?我不能为我的生活记住哪些神奇的咒语我用来在搜索中提取正确的结果,当然,它是现在的执行时间。
Is anyone here familiar with the process I am describing? I can't for the life of me remember which magical incantation I used to pull up the correct result in a search and, of course, it is now implementation time. Thanks in advance for any help you guys can offer, I will continue searching in the meantime.
推荐答案
这可能还不够,但它可能会让您入门:流程互操作性
This may not be enough, but it might get you started: Process Interoperability
在64位Windows上,进程外的32位COM服务器可以与64位客户端进行通信, - 进程64位COM服务器可以与32位客户端通信。 因此,如果您有一个不支持COM的32位DLL,则可以将其封装在进程外COM服务器中,并使用COM来调度64位进程的调用。
将32位Windows应用程序迁移到64位计算机可能会有问题,如果您有32位DLL,您不能重写。 Mike Becker向您展示了如何使用内置的IPC机制从64位代码访问32位DLL ...
Migrating your 32-bit Windows application to a 64-bit machine can be problematic if you have 32-bit DLLs that you cannot re-write. Mike Becker shows you how you can access 32-bit DLLs from 64-bit code using built-in IPC mechanisms...
这篇关于通过COM在64位进程中使用32位DLL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!