第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為面向?qū)ο蟮腃 ++代碼開發(fā)C包裝API

為面向?qū)ο蟮腃 ++代碼開發(fā)C包裝API

為面向?qū)ο蟮腃 ++代碼開發(fā)C包裝API我正在尋找開發(fā)一組C API,它們將圍繞我們現(xiàn)有的C ++ API來訪問我們的核心邏輯(用面向?qū)ο蟮腃 ++編寫)。這基本上是一個粘合API,允許我們的C ++邏輯可以被其他語言使用。什么是一些很好的教程,書籍或最佳實踐,介紹了圍繞面向?qū)ο蟮腃 ++包裝C所涉及的概念?
查看完整描述

3 回答

?
慕尼黑的夜晚無繁華

TA貢獻(xiàn)1864條經(jīng)驗 獲得超6個贊

將C ++代碼暴露給C并不難,只需使用Facade設(shè)計模式即可

我假設(shè)您的C ++代碼內(nèi)置于庫中,您只需將C ++庫中的一個C模塊作為庫的Facade和純C頭文件。C模塊將調(diào)用相關(guān)的C ++函數(shù)

完成后,您的C應(yīng)用程序和庫將完全訪問您公開的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函數(shù)公開為您的API,您可以將其作為C lib自由使用而不用擔(dān)心

// file name "libIntrface.h"extern int doObjectOrientedStuff(int *, int, char*);

顯然這是一個人為的例子,但這是將C ++庫暴露給C的最簡單方法



查看完整回答
反對 回復(fù) 2019-11-16
  • 3 回答
  • 0 關(guān)注
  • 325 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號