我知道这里有一个链接,讨论了COM和XPCOM之间的区别。
但是,我想更详细地了解这个主题。 例如,对于引用计数和类型推断,COM继承自IUnknown,XPCOM继承自nsISupport。 IUnkown和nsISupoort除了命名之外有什么区别?
此外,这两个不同的组件是否支持不同的线程管理或内存管理?这样的话题对我很感兴趣。
如果您知道,请回复此帖。 感谢
答案 0 :(得分:3)
IUnkown和nsISupoort除了命名之外有什么区别?
没有,真的。 nsISupoort
专门设计为与IUnknown
二进制兼容,以便FireFox更容易托管ActiveX控件,并且本身作为ActiveX控件公开。
这两个不同的组件是否支持不同的线程管理或内存管理?
是。 XPCOM使用自己的内存分配器(nsMemory::Alloc
等),完全独立于COM分配器(CoTaskMemAlloc
等)。 COM提供了一套广泛的线程模型以及编组支持。 XPCOM根本不处理线程(参见nsIProxyObjectManager
),并且没有编组的概念。
警告:此信息很可能已过时。我对Mozilla发展状况的熟悉程度是2010年左右。