為面向對象的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 關注
- 328 瀏覽
添加回答
舉報
0/150
提交
取消