5

我无法理解 XPCOM。它与 COM 有何不同?是什么让它跨平台?

它是一个带有一组库的框架,你可以用它来完成一些工作吗?

另外,组件对象模型是否意味着每个功能都在组件中实现,因此我们可以在不知道详细实现的情况下使用它?

你能帮我理解这个吗?谢谢,陈。

4

1 回答 1

9

我无法理解 XPCOM。它与 COM 有何不同?

XPCOM 是 Mozilla 自己的跨平台(因此是XP位)版本的 COM。

是什么让它跨平台?

它在一个库中实现,该库已由 Mozilla 开源项目的贡献者移植到许多平台。您可以为您希望的任何平台构建它或下载二进制文件,并且如果您想在尚不支持的平台上使用它,那么您自己移植它应该很简单。

另外,组件对象模型是否意味着每个功能都在组件中实现,因此我们可以在不知道详细实现的情况下使用它?

是的,一针见血。这个想法是建立一个独立于语言的框架,使不同的组件能够进行通信和交互,而不需要任何特殊的语言知识来实现​​任何特定的组件。因此,例如,javascript 代码可以调用 C++ 代码。

这是通过组件发布定义良好的接口来实现的,使用一种称为IDL的语言(或者,在 XPCOM 的情况下,XPIDL)。这些接口使用定义良好的类型以及每种支持语言中的映射。每个接口都继承自一个通用基接口,该接口提供了用于引用计数和类型推断的标准方法(IUnknown在 COM 和nsISupportsXPCOM 中调用)。

你能帮我理解这个吗?

在线资源方面, MSDN(COM)MDC(XPCOM)都有专门的区域。如果您想真正了解 COM 的动机以及为什么会这样,我建议您阅读Don BoxEssential COM。当然,如果您有任何具体问题需要回答,您可以随时来这里提问。:)

于 2010-10-18T10:40:56.007 回答