0

现在众所周知,如何在免注册环境中对 DLL 实现的 COM 对象进行接口调用。问题是相反的:

如何从 DLL 对 EXE 中实现的 COM 对象进行接口调用?应该使用哪些清单和哪些清单部分?

编辑:可能不是很清楚,但我的意思是进行中的通话。我想在同一个进程中调用一个对象,但在 EXE 而不是 DLL 中实现。

EDIT2:好的,我看到事情变得复杂,所以我必须解释原来的问题。C ++应用程序实现 IApplication 接口并将指向它的指针作为成员。此成员由可通过 AfxGetApp() 从任何地方访问的公共方法返回。

还有一种机制允许任何客户将他自己的C# “插件”DLL 添加到我们的应用程序中。对于此类 DLL,IApplication 接口是应用程序功能的关键访问点。但是这些 DLL 无法访问主应用程序的对象。

为了解决这个问题,我添加了一个辅助的“ICreateApplication”对象,它返回原始的 IApplication 指针。任何“插件”DLL 都可以创建这个辅助对象并从中获得所需的接口。我在一些任意选择的 DLL 中实现了这个对象,并为它配备了必要的清单。

这个解决方案效果很好,但是这种“任意选择”让我很困扰。我想知道,是否有可能在应用程序对象中实现“ICreateApplication”?

4

0 回答 0