我主要是C++的人。由于C++缺乏官方的ABI,所以对于支持多个编译器的组件设计,我总是使用类似COM的方法。
最近,我遇到了这样一个问题:Objective是否会取代COM类的方法?显然,要使Objective成为替代目标,需要一个稳定的ABI,因此我想知道目标C是否存在(在所有主要的OSes OSX、GNU/Linux、++上),以及使用Objective(++)作为不同编译器创建的组件之间的“粘合剂”有多容易。
编辑:如Nikolai指出,对COM的简短描述可能会有所帮助。COM本质上是一个“二进制标准”,它允许混合不同编译器(以及各种语言)的二进制代码。COM的载体是接口,它定义方法(映射到C++的虚拟函数)。组件实现至少一个接口,并作为DLL分发。它们可以位于系统的任何位置(位置在注册表中指定),并且可以由任何COM-客户端通过它们实现的接口的ID加载。
发布于 2012-07-27 18:38:45
https://stackoverflow.com/questions/11693436
复制相似问题