COM组件可以在Windows以外的平台中使用吗?

时间:2010-07-03 05:52:03

标签: visual-c++ com

我想知道是否可以在linux等其他平台上使用COM组件..,

我的问题是COM组件应该在OS& 对于该操作系统需要注册表之类的东西,以便客户端可以使用COM组件。

有人可以解释我的问题吗?

4 个答案:

答案 0 :(得分:1)

如果您希望能够通过指定“字符串”来创建COM类,并希望操作系统可以搜索要加载的正确二进制库以及创建实际的COM类(对象),那么某种形式需要注册。

除此之外,如果您只想使用COM样式的接口(从IUnknown,IDispatch等派生的接口),您可以使用任何C ++语言(只要该C ++编译器的vtable实现与COM兼容) )。

最后,作为Windows操作系统的一部分提供了一些COM功能,如进程间通信和远程调用。如果需要这些功能,您将需要实现自己的功能。

CORBA上的维基百科页面似乎有一些选择。查看另请参阅部分。

答案 1 :(得分:1)

The wikipedia entry对于Microsoft COM在“概述”中说“接口标准已在多个平台上实现”,但未指定哪些平台。如果您正在寻找跨平台方法,那么最好使用XPCOM之类的方法。

答案 2 :(得分:0)

从技术上讲,COM只是一种可以在任何平台上实现的架构。例如,在注册表中查找已注册的类是可以在任何其他平台上以等效方式实现的。剩下的就是DLL和MIDL,你可以在任何平台上工作。

实际上,COM适用于Windows(甚至很快就会死掉)。

答案 3 :(得分:0)

理论上的答案是肯定的,可以在其他平台上使用COM组件。 这是1998年Building COM Components on UNIX上的一篇文章。然而,即使在当天,这也不是一种流行的(或谨慎的)方法。