我正在使用使用Windows上COM的VirtualBox API。如果您有64位OS,它将安装64个位版本,并且COM接口将可供64位客户端访问,但不能访问32位。有人告诉我这是一个限制,但我已经看到 方法 要使用DLL32在注册表上“发布” 32个位接口,因此64位进程可以调用这些COM服务器,但是我找不到逆,从32位进程中访问64位接口。

如果我不太清楚,我相信这个人想获得类似的东西: http://www.codeproject.com/forums/1648/com.aspx?fid=1648&df=90&mpp = 25&sort = pisition&select = 1702805&tid = 1702805

有帮助吗?

解决方案

在过程中 thunking 始终只能从更高的位置到降低一个,而不是相反。当Win32出来时,一个32位的过程可能会造成16位DLL,但是只能将32位DLL倒入16位的过程中。现在也是如此,可以将32位dll倒入64位过程中,但是没有办法将64位DLL倒入32位过程(除了除外 WOW64模拟器DLL: :wow64.dll,wow64win.dll和wow64cpu.dll)。

如果要加载64位com在程序内dll,则需要一个处理外的64位加载程序,并且您的32位应用程序可以与已加载并传递呼叫的必要参数,并接收结果。

对于处理外64位com本地服务器,您需要32位代理DLL,请参阅 32位和64位应用程序之间的交流通信.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top