32位COM dll(代理)不加载64位应用程序(E_NOINTERFACE错误)

时间:2015-11-17 13:42:16

标签: c++ com 64-bit

我有一个COM对象(C#.NET),它在32位C ++应用程序中使用时已经注册并正常工作。

使用64位C ++应用程序时,它不起作用。我按照这些步骤(click)在32位进程中加载​​COM对象,但是当调用CreateInstance时(更确切地说是在调用IUnknown-> QueryInterface(...)时),我得到一个E_NOINTERFACE错误。 (我在TaskManager中看到DllHost.exe * 32)

不幸的是,这不是我编写的代码,我完全没有使用COM对象的经验。任何人都可以指出我如何调试它,甚至可能是什么问题?

我正在通过

在我的代码中导入一个类型库
#import "BrowserClient.tlb"

并且呼叫本身是:

hr = client.CreateInstance(__uuidof(BrowserClient::BrowserClient));

编辑:我不知道这是否有用,但COM对象注册为InProcServer32。我使用OLE / COM对象查看器来查看它。

0 个答案:

没有答案