codefans

          導航

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          程序設計鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          利用VC++6.0實現JNI的最簡單的例子(轉載)

          http://www.chinaunix.net 作者:ludejun98  發表于:2004-03-03 11:16:06

          最近項目中設計到JNI的技術,對于VC++我是一知半解.JNI是知道和Native方法的接口,從來沒用過.但是摸了一會,還是感覺有點門路,搞定了JNI的難題以后,對于自己這點小小的進步不敢隱瞞,公開出來給還不了解的兄弟們作個參考.

          Java中使用JNI調用DLL
          1 編寫范例文檔
          public class TestNative{
            
            private native int add(int x,int y);
            
            public static void main(String[] args) {
              TestNative hh = new TestNative();
              int r = hh.add(30,20);
              System.out.println("result = "+r);
            }

            static {
              System.loadLibrary("DLL_0305");
            }
          }
          其中
          LoadLibrary中的DLL文件名稱可以隨便定.只要做好的動態鏈接庫改名成這個字符串就可以了.而native函數的來源就是該動態鏈接庫.
          2. 做好該步準備以后,用javac TestNative.java生成.class.檢驗語法.
          3. 語法檢查通過以后,用javah TestNative生成.h的C頭文件.
          4. 打開VC++6.0,新建-> 工程 -> win32 Dynamic-Link Library .在向導中選擇空工程.
          5. 把剛才javah生成的那個頭文件加入工程 .然后 文件->新建->textFile 自己做一個.c文件.實現自己的native函數.清單如下:

          #include<jni.h>

          JNIEXPORT jint JNICALL Java_TestNative_add
            (JNIEnv *ev, jobject obj, jint x, jint y)
          {
          return x+y;
          }
          備注:
          A  其中的jni.h通常在 jdk\include\ 可以先拷貝到VC安裝目錄下的include目錄下.一勞永逸,以后可以方便使用JNI技術.
          B  全部的數據類型需要考慮Java和VC的接口問題.用jint  jstring 等.
          C  函數名稱和自動生成的.h文件中規定的一致.命名規則是: Java_使用類_方法名 
          6 全編譯一下工程.
            如果沒有出錯,則此時生成動態鏈接庫成功.
            把動態鏈接庫拷貝到TestNative.java所在的目錄上.
          7 運行java TestNative看結果吧.

          posted on 2005-11-05 10:56 春雷的博客 閱讀(120) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 巫山县| 新宁县| 闽清县| 西青区| 治县。| 孟津县| 黄石市| 香港| 大同市| 叶城县| 肥东县| 庆阳市| 万安县| 攀枝花市| 宣城市| 郧西县| 宜州市| 冷水江市| 汽车| 长子县| 白朗县| 班玛县| 斗六市| 青川县| 电白县| 修水县| 弋阳县| 齐齐哈尔市| 深泽县| 札达县| 响水县| 宜兰县| 瑞金市| 石屏县| 介休市| 什邡市| 景宁| 乐东| 罗城| 宁武县| 永嘉县|