COM与XPCOM这两者之间的区别

时间:2014-02-24 12:19:47

标签: com xpcom firefox-os b2g

我知道这里有一个链接,讨论了COM和XPCOM之间的区别。

What is XPCOM? XPCOM vs COM?

但是,我想更详细地了解这个主题。 例如,对于引用计数和类型推断,COM继承自IUnknown,XPCOM继承自nsISupport。 IUnkown和nsISupoort除了命名之外有什么区别?

此外,这两个不同的组件是否支持不同的线程管理或内存管理?这样的话题对我很感兴趣。

如果您知道,请回复此帖。 感谢

1 个答案:

答案 0 :(得分:3)

  

IUnkown和nsISupoort除了命名之外有什么区别?

没有,真的。 nsISupoort专门设计为与IUnknown二进制兼容,以便FireFox更容易托管ActiveX控件,并且本身作为ActiveX控件公开。

  

这两个不同的组件是否支持不同的线程管理或内存管理?

是。 XPCOM使用自己的内存分配器(nsMemory::Alloc等),完全独立于COM分配器(CoTaskMemAlloc等)。 COM提供了一套广泛的线程模型以及编组支持。 XPCOM根本不处理线程(参见nsIProxyObjectManager),并且没有编组的概念。

警告:此信息很可能已过时。我对Mozilla发展状况的熟悉程度是2010年左右。