为面向对象的C ++代码开发C包装API我正在寻找开发一组C API,它们将围绕我们现有的C ++ API来访问我们的核心逻辑(用面向对象的C ++编写)。这基本上是一个粘合API,允许我们的C ++逻辑可以被其他语言使用。什么是一些很好的教程,书籍或最佳实践,介绍了围绕面向对象的C ++包装C所涉及的概念?
3 回答
慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
将C ++代码暴露给C并不难,只需使用Facade设计模式即可
我假设您的C ++代码内置于库中,您只需将C ++库中的一个C模块作为库的Facade和纯C头文件。C模块将调用相关的C ++函数
完成后,您的C应用程序和库将完全访问您公开的C api。
例如,这是一个示例Facade模块
#include <libInterface.h>#include <objectedOrientedCppStuff.h>int doObjectOrientedStuff(int *arg1, int arg2, char *arg3) { Object obj = ObjectFactory->makeCppObj(arg3); // doing object oriented stuff here obj->doStuff(arg2); return obj->doMoreStuff(arg1); }
然后,您将此C函数公开为您的API,您可以将其作为C lib自由使用而不用担心
// file name "libIntrface.h"extern int doObjectOrientedStuff(int *, int, char*);
显然这是一个人为的例子,但这是将C ++库暴露给C的最简单方法
- 3 回答
- 0 关注
- 296 浏览
添加回答
举报
0/150
提交
取消