答案 0 :(得分:1)
您可以查看Parma Polyhedra Library作为编写良好的C ++库的优秀C接口的示例。 PPL是一个免费的GPL编辑软件,特别是在GCC编译器中使用。
答案 1 :(得分:1)
另一个高质量的例子是Open Dynamics Engine。它有一个C ++后端和一个C前端。一切都是C可链接的。
答案 2 :(得分:0)
如果您的C ++库在Windows上编写为COM。有一些工具可以自动为它生成C接口。
答案 3 :(得分:0)
我可以建议FTGL这是一个提供C接口的C ++库。以下是两个实现完全相同的示例程序:
另请注意,FTGL使用pImpl paradigm以实现跨版本的二进制兼容性。见here为什么它好。
免责声明:我是FTGL的贡献者。
答案 4 :(得分:0)
libGLU(OpenGL实用程序库)部分用C ++编写:http://cgit.freedesktop.org/mesa/mesa/tree/src/glu
答案 5 :(得分:0)
libzmq是一种奇怪的情况,因为低级C API原本看起来像POSIX套接字,绝对不是面向对象的(我们使它随着时间的推移变得更加一致和有条理)。同时实际的库是用C ++编写的。
C ++-to-C接口位于libzmq / src / zmq.cpp中,由一组简单的C函数组成,这些函数调用了真正的' C ++代码。
另一方面,CZMQ旨在提供更优雅的东西,提供一个带有构造函数,析构函数,容器,私有属性等的简单类模型。没有什么激进但是确实将C变成了更优雅的语言。我不确定CZMQ类方法如何映射到C ++ API,除非该API明确设计为映射。
免责声明:我是CZMQ大部分作者。