为了账号安全,请及时绑定邮箱和手机立即绑定

为面向对象的C ++代码开发C包装API

为面向对象的C ++代码开发C包装API

C++
繁星点点滴滴 2019-11-15 12:10:06
为面向对象的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的最简单方法



查看完整回答
反对 回复 2019-11-16
  • 3 回答
  • 0 关注
  • 296 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信