Linux/UNIX 中的 COM 编程模拟

Posted

技术标签:

【中文标题】Linux/UNIX 中的 COM 编程模拟【英文标题】:Analog of COM programming in Linux/UNIX 【发布时间】:2011-02-23 23:38:16 【问题描述】:

组件对象模型 (COM) 是(或曾经...)在 Windows 中提供与语言无关的软件组件的方式。

在 Linux/UNIX 中是否有任何编程模型具有通过二进制组件重用代码的相同理念?

【问题讨论】:

【参考方案1】:

在 Linux 上,DBus 目前正在成为事实上的更高级别标准。

【讨论】:

【参考方案2】:

Sun RPC 应该是这样的。然后是CORBA。然后GNOME Bonobo 和KDE DCOP。现在看来D-Bus 是最新时尚。

【讨论】:

是的,似乎 DBUS 是要走的路。谢谢。 啊! XPCOM呢?对 Mozilla 项目的编程限制太多了吗?还是类似于 COM? 关于XPCOM,除了Mozilla,它也不是那么好用的。另外,不要忘记 Uno,它是 OpenOffice/LibreOffice 的合作伙伴。 DBUS 不是组件系统。它只提供 IPC(进程间通信)和激活(对尚未启动的进程进行 IPC)。它不支持进程内组件(如可加载库或 ActiveX 控件),也没有许多标准化接口(例如“嵌入式控件”、“文件类型 XY 的文件查看器”、IDispatch、持久存储、OLE、.. .就像你在COM中一样)。基本上,现在(2012 年)所有这些都被一次性 DBUS 接口所取代。【参考方案3】:

作为 GNOME 一部分的 Evolution 电子邮件客户端使用 CORBA。它使用 ORBit,这是一个轻量级的 CORBA ORB。

http://projects.gnome.org/ORBit2/

【讨论】:

以上是关于Linux/UNIX 中的 COM 编程模拟的主要内容,如果未能解决你的问题,请参考以下文章

《Linux/Unix系统编程》第七八章学习笔记

Windows IPC 模拟 Linux Unix 域和 Netlink 套接字

Linux/UNIX编程:获取指定用户所有正在运行的进程ID和进程名

为啥要在linux/unix下进行c/c++编程?

Linux - Unix环境高级编程(第三版) 源代码编译(即头文件apue.h如何使用问题)

Linux/UNIX系统编程手册 PDF下载