一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

SWIG,把C/C API 導出成Java,C#,Python,Ruby,Php的類庫...

 古羅 2008-01-16

 

    文藝一點總結(jié),SWIG就是C/C++類庫與泛高階語言的萬能粘合劑。
   按照Swig的思路,C/C++是很優(yōu)秀的library級代碼語言,而寫界面等方面則是Java、C#、Python們占優(yōu)。所以SWIG(Simplified Wrapper and Interface Generator) 就把C/C++寫的類庫,編譯為上述高階語言的Class來使用。
    原本擔心這個項目有點邊緣化,一看原來Ruby和Python早就靠它從C/C++里溜東西出來了。對于python, ruby這些家底不厚的新生代來說,C/C++的類庫很有魅惑力。
    cyt偶像說,"做產(chǎn)品的時候好呀:有豐富的API接口,支持java、python、php、perl、ruby…… 多好吹…… "
   
1. 實現(xiàn)原理:
    比如Java吧,有一個JNI機制可以直接調(diào)用C代碼,但要求C代碼需如是:

JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj) 
{
    printf(
"Hello world!\n");
    
return;
}


   SWIG 就為你自動生成了這個冗長的wrapper文件,其中還妥善完成了類型轉(zhuǎn)換,函數(shù)指針、模板這些C++功能在其他語言中的轉(zhuǎn)換等諸般工作,善舉阿。

 2.操作過程: 
    很簡單,特別在VC里dsp文件都寫好了,把選項設為Release,rebuild一下就搞定。
    如果要拆成慢動作,在一個Java項目里是這樣的:
   1.編寫interface文件example.i
     如果api有頭文件就更簡單了,下面的代碼定義一個example類
  

%module example
%{
#include 
"example.h"
%}

%include "example.h"


    2.  swig -java example.i  
     生成符合JNI語法(見上)的C文件: example_wrap.c
     生成Java類文件:exampleJNI.java,example.java

    3.VC把example_wrap.c 和example.c 打包成dll. 

    4.在普通java程序里使用example.java
 

      System.loadLibrary("example");
      
int g = new Example().add(42,105);


  3.總結(jié)
    當你山窮水盡,準備要重新發(fā)明輪子的時候,總該想起有個swig,可以把C/C++的輪子,換裝到你的語言上。


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产女高清在线看免费观看| 国产成人精品国产亚洲欧洲| 国产欧美日韩精品成人专区| 亚洲三级视频在线观看免费| 欧美成人免费夜夜黄啪啪| 国产亚洲欧美自拍中文自拍| 久久这里只有精品中文字幕| 免费观看一区二区三区黄片| 国产偷拍精品在线视频| 欧美日韩精品久久亚洲区熟妇人 | 色婷婷丁香激情五月天| 91麻豆精品欧美一区| 国产在线日韩精品欧美| 一区二区三区四区亚洲专区| 五月婷婷综合激情啪啪| 日本黄色录像韩国黄色录像| 欧美不卡午夜中文字幕| 亚洲国产精品无遮挡羞羞| 欧美亚洲综合另类色妞| 人人妻在人人看人人澡| 亚洲男人的天堂久久a| 国产av熟女一区二区三区四区| 亚洲欧美日韩国产成人| 色偷偷亚洲女人天堂观看| 中国日韩一级黄色大片| 麻豆看片麻豆免费视频| 久久精品亚洲精品一区| 好吊妞视频这里有精品| 欧美野外在线刺激在线观看| 欧美日韩国产精品黄片| 97人妻人人揉人人躁人人| 国产女同精品一区二区| 日韩在线精品视频观看| 国产高清视频一区不卡| 欧美亚洲91在线视频| 国内外免费在线激情视频| 国产传媒精品视频一区| 亚洲国产一区精品一区二区三区色| 国自产拍偷拍福利精品图片| 日韩一区二区三区18| 日本少妇aa特黄大片|