我过去一直使用COM和.NET程序集来开发基于组件的系统。现在,我将处理一个跨平台的C++项目,并希望在组件和…中构建代码的结构
显然,COM和.NET不是一种选择,因为COM在任何地方都不可用,但窗口和程序集会向.NET框架添加可能在目标系统上不可用的依赖项。
我知道,由于ABI的差异,如果不重新编译,我将无法在不同的操作系统之间移动组件,但我希望以一种在源代码级别兼容的方式来编写代码。
在C++中有没有支持这种架构的系统/框架?
发布于 2011-02-27 04:26:37
我过去曾使用过这样的系统--我们基本上重新发明了COM。如果您对这种方法感兴趣,请查看这篇很棒的文章:http://msdn.microsoft.com/en-us/library/ms809983.aspx
发布于 2011-02-27 01:29:20
Mozilla套件使用一个名为XPCOM的框架。我自己从来没有用过它,但这意味着它应该像微软的COM一样但可移植。据我所知,这是唯一一个基于本机代码的进程内组件系统;如果您使用的是Java语言,那就是OSGi。
如今,大多数Unix软件似乎都使用分布式组件模型,其中组件位于不同的进程中。当前流行的系统似乎是DBus;KDE3使用了一个名为DCOP的替代系统;当然,如果您想走这条路,有一个很好的老系统。
发布于 2011-03-04 01:39:34
如果您可以忍受Qt依赖(只有核心库,没有GUI库),那么可以看看CTK Plugin Framework
它是在Apache2.0下授权的,是一个动态的C++组件系统,其应用编程接口与OSGi几乎完全相同。
https://stackoverflow.com/questions/5127981
复制相似问题