XPCOM是什么? XPCOM 与 COM?

2024-05-04

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

它是一个包含一组可用于完成某些工作的库的框架吗?

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

你能帮我理解这一点吗? 谢谢, 陈.


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

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

是什么让它跨平台?

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

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

是的,准确无误。这个想法是建立一个独立于语言的框架,使不同的组件能够通信和交互,而不需要任何特定组件所使用的语言的任何特殊知识。因此,例如,javascript 代码可以调用 C++ 代码。

这是通过组件发布定义良好的接口来实现的,使用一种称为IDL http://msdn.microsoft.com/en-us/library/aa367091.aspx(或者,就 XPCOM 而言,XPIDL https://developer.mozilla.org/en/XPIDL)。这些接口利用定义良好的类型以及每种支持语言的映射。每个接口都继承自一个公共基接口,该接口提供了引用计数和类型推断的标准方法(称为IUnknown http://msdn.microsoft.com/en-us/library/ms680509.aspx在 COM 和nsISupports https://developer.mozilla.org/en/NsISupports在 XPCOM 中)。

你能帮我理解吗 请问这个?

在在线资源方面,两个网站都有专门的区域MSDN(针对 COM) http://msdn.microsoft.com/library/ms680573.aspxMDC(用于 XPCOM) https://developer.mozilla.org/en/xpcom。如果您想真正了解 COM 的动机以及为什么它是这样的,我建议您选择Don Box http://en.wikipedia.org/wiki/Don_Box's 。当然,如果您有任何具体问题需要解答,您可以随时来这里询问他们。 :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XPCOM是什么? XPCOM 与 COM? 的相关文章

  • Delphi 导入组件 - 类型库与 ActiveX

    我正在尝试在 Delphi 中使用 Microsoft 终端服务主动客户端 我发现我可以通过 创建 COM tlb 文件 导入ActiveX控件 or 导入类型库 他们似乎都提供了相同的 tlb 源文件 两种方法之间有区别吗 Delphi
  • 在 Windows 上,使用 C# 编写的 COM 服务器,可以为早期绑定和后期绑定代码返回 SAFEARRAY 吗?

    问题很长 所以我将用要点格式化以便于讨论 介绍 我正在编写一个 C COM 服务器 COM 服务器可在 Excel VBA 中以早期绑定和后期绑定模式使用 我的绊脚石是如何返回在早期和后期绑定模式下都可以工作的实例化类的 SAFEARRAY
  • MethodImplAttribute(InternalCall, Runtime) 对 COM Interop 接口的方法有何作用?

    In NET Framework 的 Windows API 代码包 http archive msdn microsoft com WindowsAPICodePack COM Interop接口的许多方法都用MethodImplAttr
  • VB.NET 和 COM Interop 看似随机崩溃

    我正在考虑用 VB 6 重写一个全新的 VB NET 应用程序 该应用程序在终端服务下运行并大量使用 COM 由于某种原因 该应用程序存在随机奇怪之处 随机访问冲突错误 WinDbg 异常分析指向 dll 如 comdlg32 dll ms
  • 如何通过 COM 公开 .netstandard2.0 库以便在 VB6 中使用?

    我有一个 dotnet 核心库 一个框架 4 7 2 库和一个 vb6 应用程序 我想编写一个公共库供他们所有人访问 因此选择 netstandard2 0 我尝试了 netstandard2 0 库和 vb6 之间的 4 7 2 框架包装
  • 注册 COM 接口的实现

    我是 COM 编程新手 我已经准备好了一个 COM 对象 以及关联的 IClassFactory 但我不太清楚如何注册生成的 DLL 以供其他程序使用 我也不清楚需要携带的 GUID 数量 我尝试注册的 COM 对象实现了 IAudioSe
  • 在没有 ResetEvent 的情况下调用 setEvent

    如果使用 setEvent 设置手动重置事件但未使用 ResetEvent 重置 会发生什么情况 并且该事件被触发多次 即当事件被处理时 事件再次被设置 以下是示例任务 void foo SetEvent hEvent1 void foo1
  • Java 中的 Com 对象,可能吗?

    抱歉 我问了一个愚蠢的问题 但我没有任何关于 java 的经验 也没有关于 jvm 的经验 而且它是内部结构 谷歌搜索主题没有给出结果 问题是是否可以用Java编写com对象 然后从 C 运行它 Thanks 是的 您可以使用 Java 中
  • 如何从 C# 等托管代码中使用 ActiveX 组件的嵌入式免注册清单?

    我想使用未在系统或用户范围内注册的特定版本的 ActiveX 组件 如果我使用清单文件 一切都会按预期工作 但是 嵌入式清单仅适用于 C 客户端代码 这是依赖声明
  • 允许连接到完整性级别不匹配的 .NET COM 服务器

    我在基于 COM 的客户端 服务器设置方面遇到问题 COM 服务器是用 C NET 4 0 编写的 并作为 注册的 本地服务器运行 根据连接到服务器的应用程序 其他客户端将收到服务器执行失败 HRESULT 异常 0x80080005 CO
  • 在 Win 10 中调试卸载 DLL 时发生崩溃,但在 Win 7 中则不然

    不完全确定我已经解决了这个问题 但这就是我所看到的和我所看到的think正在进行 我有一个主要用 C 编写的 Win32 程序 用于加载 C DLL 该 DLL 通过 COM 对象 可能由 DLL 本身实例化的对象 将数据从 C 程序传递到
  • 哪个是对的? catch (_com_error e) 还是 catch (_com_error& e)?

    我应该使用哪一个 catch com error e or catch com error e 第二 这是我试图引用萨特的话 按值抛出 按引用捕获 学会catch正确 按值 而不是指针 抛出异常 通过引用捕获它们 通常是const 这是组合
  • VBA COM 库中的这些 _B_var_Xxxxx 和 _B_str_Xxxxx 成员到底是什么?

    想象一下以下函数调用 foo UCase bar 我正在解析这段代码 并确定UCase是一个函数调用 现在我想将该函数调用解析为定义它的 COM 库中函数的声明 这个想法是实现一个代码检查来确定何时Variant当使用内置函数时String
  • 免注册 COM - COM dll 相对于客户端 exe 的位置

    我想使用免注册 com 这样我就不必注册我的旧 com 组件 但是 我希望能够将 com dll 放在不在客户端 exe 目录中或之下的位置 例如 lib 我无法在服务器清单文件中执行此操作 因为它不允许相对或绝对路径 有谁知道是否有办法解
  • 为什么我不能在 Python 的新线程中创建 COM 对象?

    我正在尝试在 Python 的新线程中从 dll 创建 COM 对象 这样我就可以在该线程中运行消息泵 from comtypes client import CreateObject import threading class Mess
  • tlb 文件是否具有关联架构?

    我有一个 32 位 DLL 旨在通过 com 模型和关联的 tlb 文件进行访问 该 DLL 似乎是 x86 有没有办法从 x64 程序访问这种 DLL tlb 文件与 x86 x64 无关吗 我问这个问题是因为有些功能似乎可以工作 其他功
  • OS/X 上的 iTunes COM 接口

    iTunes COM 接口在 Mac OS X 上可用吗 从我能找到的文档来看 它似乎比我可以通过以下方式公开的 Applescript 接口要广泛得多自动机程序 免责声明 这里绝对是 OS X 新手 COM 接口仅适用于 Windows
  • 从delphi应用程序调用.net4.0 com服务器后出现错误异常

    我们正在将代码库从 BDS2006 迁移到 Rad Studio XE 我们发现了一些非常奇怪的行为 如果我们在从 Net4 0 中实现的 COM 服务器创建一些对象后进行无效的浮点运算 即除以零 我们不会没有得到正常异常 即 EDivis
  • .NET 组件和 COM 组件有什么区别

    NET 组件和 COM 组件之间有什么区别 有时我们使用 NET 组件包含在我们的项目中 有时我们包含 COM 引用 背后的想法是什么 NET 组件是托管代码 内存处理已为您完成 COM http en wikipedia org wiki
  • 使我的 COM 程序集调用异步

    我刚刚 赢得 了在当前工作中维护用 C 编码的遗留库的特权 这个dll 公开使用 Uniface 构建的大型遗留系统的方法 除了调用 COM 对象之外别无选择 充当此遗留系统与另一个系统的 API 之间的链接 在某些情况下 使用 WinFo

随机推荐

  • 角度抛出错误 $parse:ueoe 表达式意外结束

    我网站的这一部分有错误 我无法弄清楚 因为我几个月没有更改它 错误是 Error parse ueoe http errors angularjs org 1 4 3 parse ueoe p0 event id 3FEventContro
  • 如何使用 JGit API 从父提交获取树?

    对于给定的提交 我想获取父提交树 以便我可以继续比较更改 我发现父 RevCommit 对象上的 getTree 始终返回 null ObjectId lastCommitId repository resolve Constants HE
  • 查找二维空间中圆内的所有点

    我表示我的 2D 空间 考虑一个窗口 其中每个像素显示为 2D 数组中的一个单元格 即 100x100 的窗口由相同维度的数组表示 现在给定窗口中的一个点 如果我画一个半径的圆r 我想找到该圆圈中的所有点 我想我应该检查半径周围方形区域中的
  • request.getScheme() 返回 http 而不是在 java 中返回 https

    function demo request response request getScheme is returning http instead of returning https System out println request
  • JavaScript blob 编码为 UTF-8 而不是 ANSI

    我使用 JavaScript blob 创建一个 FDF 文件 该文件打开并填充本地存储的 PDF 但是 本地存储的 PDF 的文件路径包含重音字符 并且我无法编辑文件夹名称 当文件夹路径不包含重音符号时 此代码有效 并且如果我在记事本中打
  • 在生产 Web 服务器上安装 Visual Studio 的原因

    有人将 Visual Studio 安装在 Web 服务器上 其唯一目的是为传入请求提供服务 是否有正当理由 说真的 有人可能这样做有什么特殊原因吗 一种可能的用途是连接到 Web 服务器并调试某种错误或内存泄漏 这些错误或内存泄漏已被证明
  • Android:图库视图已被弃用?

    我一直在使用图库控件来显示照片 但在滑动照片时遇到问题 我需要一直滑动才能更改照片 否则它会弹回到上一张照片 上网一查 听说画廊已经被废弃了 下一个可以与画廊控件执行相同操作的控件是什么 Use a Gridview http develo
  • Groovy 中的嵌套“each”循环

    需要有关 groovy 中嵌套循环语法的指导 如何使用迭代器在这里打印 a name的值 b name的值 的值 List a a each print it name List b something b each print value
  • 用以前的非缺失值填充“缺失”值的有效方法是什么?

    我有一个向量 using Missings v allowmissing rand 100 v rand 100 lt 0 1 missing 最好的填充方式是什么v与最后一个非缺失值 现在 for i val in enumerate v
  • pandas:qcut错误:ValueError:Bin边缘必须是唯一的:

    我正在尝试使用 pandas qcut 方法计算两列的百分位数 如下所示 my df float col quantile pd qcut my df float col 100 labels False my df int col qua
  • Visual Studio 项目的依赖关系图

    我目前正在将一个大型解决方案 约 70 个项目 从 VS 2005 NET 2 0 迁移到 VS 2008 NET 3 5 目前我有 VS 2008 NET 2 0 问题是我需要将项目一一移动到新的 NET 框架 确保没有 NET 2 0
  • 在 iOS 9 上,所有 uitableviewcell 的高度都变成一行

    我有一个带有多个 UITableView 控制器的应用程序 在 iOS 8 x 上运行 每个表格中所有单元格的高度将调整大小以适合单元格的内容 所有单元格仅包含纯文本的 UILabel 现在 在 iOS 9 上运行时 每个表格上的每个单元格
  • Java - 线程“主”中的异常 java.util.ConcurrentModificationException

    有什么办法可以修改HashMap迭代特定键时的值 下面给出一个示例程序 public static void main String args HashMap
  • javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringApplication

    我开发了一个 Spring boot 应用程序 该应用程序的功能运行良好 但是 在启动时 我多次看到以下异常 当我几周前运行相同的应用程序时 我没有看到任何此类异常 此后代码库没有改变 我想知道它是否与环境有关 我发帖的原因是我想更多地了解
  • 能够删除特定约束的增量 SMT 求解器

    是否有增量 SMT 求解器或用于某些增量 SMT 求解器的 API 我可以在其中增量添加约束 在其中我可以通过某个标签 名称唯一地标识每个约束 我想唯一地标识约束的原因是这样我可以稍后通过指定标签 名称来删除它们 需要放弃约束是因为我之前的
  • 对 Qsort 和指针感到困惑

    我是一名 C 初学者程序员 想要习惯术语和指针 我在寻找对数值数组元素进行排序的方法时发现了以下工作函数原型 该函数是 qsort 它使用指针 现在我的理解是 const 一词确保值 a 和 b 不变 但指针不变 如果我在这里错了 请纠正我
  • Xcode 4.6.2 应用程序每秒运行一次就会崩溃

    Xcode 4 6 2 似乎有很多 bug 当我第二次跑步时any项目我在第一秒内就发生 SIGABRT 崩溃 我完全删除了 Xcode 并重新安装 是的 我尝试关闭然后再次打开 我还删除了命令行工具和模拟器 但这也没有帮助 好的 我找到了
  • 使用 Volley 时出现 SSL 异常

    我在 Android 中使用 Volley 来执行我的应用程序请求 不幸的是 我收到以下错误 com android volley NoConnectionError javax net ssl SSLHandshakeException
  • #pragma 指令是否依赖于编译器?

    我知道并且我用过 pragma startup and pragma exit之前 但当我执行以下代码时 它仅输出In main 谁能告诉我这里发生了什么事 include
  • XPCOM是什么? XPCOM 与 COM?

    我无法理解 XPCOM 它与 COM 有什么不同 是什么让它跨平台 它是一个包含一组可用于完成某些工作的库的框架吗 另外 组件对象模型是否意味着每个功能都在组件中实现 因此我们可以在不知道详细实现的情况下使用它 你能帮我理解这一点吗 谢谢