免费中文字幕午夜理论模特,久久午夜福利精品,国产精品久久久久中文,久久精品视频免费观看12

  • <object id="ysikk"><strike id="ysikk"></strike></object>
    <menu id="ysikk"><abbr id="ysikk"></abbr></menu>
    <ul id="ysikk"></ul>
    <tbody id="ysikk"></tbody>
  • <menu id="ysikk"><noscript id="ysikk"></noscript></menu>

    課件009 教學資源下載
    課件 試卷 教案 畢業(yè)論文 圖書軟件 職教研究 期刊推介 信息發(fā)布 會員賬戶
    當前位置:課件009首頁 >> 職教研究 >> 專業(yè)論文 >> 好的一種Java程序調(diào)用C/C++語言函數(shù)的方法

    好的一種Java程序調(diào)用C/C++語言函數(shù)的方法

    (作者未知) 2011/6/21

       [摘要]本文介紹如何利用Java提供的C語言接口在Java中調(diào)用C函數(shù),解決了在實際調(diào)用過程中可能碰到的技術問題,并通過實例給出了具體編程方法。
       [關鍵詞]Java JNT C DLL
       在現(xiàn)今的軟件開發(fā)領域中,Java以其跨平臺的優(yōu)勢得到大量的應用,其代碼可以一次編譯多處執(zhí)行。但這種特性給Java帶來了一定的局限性,幸好Java提供了完備的C/C++語言接口,這樣我們可以利用C語言的強大功能實現(xiàn)Java難以實現(xiàn)的功能,在一定程序上消除Java的局限性和低效率。
       一、創(chuàng)建DLL文件
       使用某一種C/C++開發(fā)工具創(chuàng)建Dll文件,實現(xiàn)某一功能,供JAVA調(diào)用,例如本文在此使用Visual studio 2005創(chuàng)建一個名為testdll的動態(tài)庫文件。
       二、使用JNI
       JNI是Java Native Interface的縮寫,中文為JAVA本地調(diào)用。它允許Java代碼和其他語言寫的代碼進行交互。
       1.JAVA類
       在JAVA程序中,首先需要在類中聲明所調(diào)用的庫名稱,如下:
       static {
       System.loadLibrary(“testdll”); //加載動態(tài)庫,testdll為DLL文件名稱
       }
       還需要對將要調(diào)用的方法做本地聲明,關鍵字為native。并且只需要聲明,而不需要具體實現(xiàn)。如下:
       public native static void set(int i);
       public native static int get();
       然后編譯該JAVA程序文件,生成CLASS,再用JAVAH命令,JNI就會生成C/C++的頭文件。
       例如程序testdll.java,內(nèi)容為:
       public class testdll { static { System.loadLibrary(“testdll”); } public native static int get(); public native static void set(int i); public static void main(String[] args) { testdll test = new testdll(); test.set(10); System.out.println(test.get()); } }
       用javac testdll.java編譯它,會生成testdll.class。
       再用javah testdll,則會在當前目錄下生成testdll.h文件,這個文件需要被C/C++程序調(diào)用來生成所需的庫文件。
       2.C/C++
       創(chuàng)建C/C++項目需要增加的頭文件有jni.h、jni_md.h這兩個文件是JNI中必須的;還有就是增加testdll.h。
       對于已生成的.h頭文件,C/C++所需要做的,就是把它的各個方法具體的實現(xiàn)。然后編譯連接成庫文件即可。再把庫文件拷貝到JAVA程序的路徑下面,就可以用JAVA調(diào)用C/C++所實現(xiàn)的功能了。
       接上例子。我們先看一下testdll.h文件的內(nèi)容:
       #include #ifndef _Included_testdll #define _Included_testdll #ifdef __cplusplus extern "C" { #endif JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv *, jclass); JNIEXPORT void JNICALL Java_testdll_set (JNIEnv *, jclass, jint); #ifdef __cplusplus } #endif #endif
       在具體實現(xiàn)的時候,我們只關心兩個函數(shù)原型 JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv *, jclass);和 JNIEXPORT void JNICALL Java_testdll_set (JNIEnv *, jclass, jint);這里JNIEXPORT和JNICALL都是JNI的關鍵字,表示此函數(shù)是要被JNI調(diào)用的。而jint是以JNI為中介使JAVA的int類型與本地的int溝通的一種類型,我們可以視而不見,就當做int使用。函數(shù)的名稱是JAVA_再加上java程序的package路徑再加函數(shù)名組成的。參數(shù)中,我們也只需要關心在JA(未完,下一頁

      

    頁碼選擇:1 2
    相關專業(yè)論文
    1 利用Hibernate對象持久化
    2 MVC編程模型在Web程序中的應
    3 JDBC數(shù)據(jù)庫編程的研究
    4 淺析Comet技術在JavaWe
    5 一種基于Java技術的網(wǎng)絡管理軟
    6 Java代碼混淆技術研究
    7 基于Oracle10g的JAVA
    8 關于JAVA的數(shù)據(jù)庫連接池的探討
    9 計算機軟件開發(fā)的JAVA編程語言
    10 Javaapplet音頻播放器
    11 好的一種Java程序調(diào)用C/C+
    推薦專業(yè)論文
    1 集體林權制度改革與森林警官培訓面
    2 基于服務理念的高職學生社團發(fā)展探
    3 事業(yè)單位內(nèi)部會計控制制度探討
    4 職業(yè)教育項目資金的管理對策
    5 變速器的設計與計算
    6 獨立學院人才培養(yǎng)質量標準和提高教
    7 論王熙風的形象
    8 高校德育突顯科學發(fā)展觀
    9 讓學生成為班級的主人
    10 淺談高校計算機實驗室的管理與維護
    11 試析高職技術物理教學中思維能力的
    12 新形勢下商科院校加強文化素質教育
    13 造型遺產(chǎn)對繪畫創(chuàng)作的借鑒意義
    14 淺議民法中的乘人之危
    15 中職機電專業(yè)課程體系改革研究初探


    設為首頁  加入收藏  下載與付款  上傳課件  資料征集  論壇與信息發(fā)布  期刊雜志推介  免責聲明  常見問題   分類說明  聯(lián)系本站  會員登錄
    課件009教育資源網(wǎng) 版權所有