COM与XPCOM这两者之间的区别

COM与XPCOM这两者之间的区别,com,xpcom,firefox-os,b2g,Com,Xpcom,Firefox Os,B2g,我知道这里有一个链接讨论了COM和XPCOM之间的区别 然而,我想更详细地了解这个话题。 例如,对于引用计数和类型推断,COM继承自IUnknown,XPCOM继承自nsISupport。IUnkown和nsISupoort除了命名之外还有什么区别 此外,这两个不同的组件是否支持不同的线程管理或内存管理?像这样的话题我很感兴趣 如果你知道的话,请回复这个帖子。 谢谢 IUnkown和nsISupoort除了命名之外还有什么区别 没有,真的nsISupoort专门设计为与IUnknown二进制兼

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

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

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

如果你知道的话,请回复这个帖子。 谢谢

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

没有,真的
nsISupoort
专门设计为与IUnknown二进制兼容,使FireFox更容易托管ActiveX控件,并将自身作为ActiveX控件公开

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

对。XPCOM使用自己的内存分配器(
nsMemory::Alloc
等),完全独立于COM分配器(
CoTaskMemAlloc
等)。COM提供了一组广泛的线程模型以及封送支持。XPCOM几乎不处理线程(请参见
nsIProxyObjectManager
),也没有封送的概念

警告:此信息很可能已过时。从2010年左右开始,我对Mozilla开发状态的了解是最新的