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

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

我正在寻找开发一组C API,它们将围绕我们现有的C ++ API来访问我们的核心逻辑(用面向对象的C ++编写)。这基本上是一个粘合API,允许我们的C ++逻辑可以被其他语言使用。什么是一些很好的教程,书籍或最佳实践,介绍了围绕面向对象的C ++包装C所涉及的概念?


繁星点点滴滴
浏览 297回答 3
3回答

慕尼黑的夜晚无繁华

将C ++代码暴露给C并不难,只需使用Facade设计模式即可我假设您的C ++代码内置于库中,您只需将C ++库中的一个C模块作为库的Facade和纯C头文件。C模块将调用相关的C ++函数完成后,您的C应用程序和库将完全访问您公开的C api。例如,这是一个示例Facade模块#include&nbsp;<libInterface.h>#include&nbsp;<objectedOrientedCppStuff.h>int&nbsp;doObjectOrientedStuff(int&nbsp;*arg1,&nbsp;int&nbsp;arg2,&nbsp;char&nbsp;*arg3)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;obj&nbsp;=&nbsp;ObjectFactory->makeCppObj(arg3);&nbsp;//&nbsp;doing&nbsp;object&nbsp;oriented&nbsp;stuff&nbsp;here &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj->doStuff(arg2); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;obj->doMoreStuff(arg1); &nbsp;&nbsp;&nbsp;}然后,您将此C函数公开为您的API,您可以将其作为C lib自由使用而不用担心//&nbsp;file&nbsp;name&nbsp;"libIntrface.h"extern&nbsp;int&nbsp;doObjectOrientedStuff(int&nbsp;*,&nbsp;int,&nbsp;char*);显然这是一个人为的例子,但这是将C ++库暴露给C的最简单方法
打开App,查看更多内容
随时随地看视频慕课网APP