隨筆-23  評論-0  文章-5  trackbacks-0
          由于項目需要,要做一個調用dll文件。在網上看了看相關文章,但是在做的時候還是出現了一些問題。
          先說一下我的運行環境:JDK6.0  VC++6簡體中文版
          我運行環境是這個,對于其他環境我也不知道行不行,可以試一下!

          1,編寫Java文件MyDll.java
           1 public class MyDll {
           2     static {
           3         System.loadLibrary("MyDll");
           4     }
           5     public native int sum(int i,int j); 
           6     public static void main(String args[]) {
           7         int i = 10;
           8         int j = 10;
           9         int temp = new MyDll().sum(i, j);
          10         System.out.println("10+10的和為:"+temp);
          11     }
          12 }
          13 
          2,編譯Java文件 命令:javac MyDll.java 如果沒有報錯 ,再運行命令: javah MyDll 。前面命令生成MyDll.class文件,后面命令生成MyDll.h文件
           
          3,在VC++6建立項目,選擇Win32 Dynamic-Link Library ,工程名 MyDll。然后選擇A simple DLL project,點擊Finish。



          4,將MyDll.h文件復制到你項目里面,就是項目名的文件夾里面。


          在StdAfx文件里面#include <windows.h>后面添加
          #include <jni.h>
          #include "MyDll.h"
          配置環境,選擇“工具”,“選項”,“目錄”,將你安裝Java的目錄中的include和win32目錄添加上。

          5,將下面代碼復制到MyDll.cpp文件的后面,build項目,將項目文件夾下的Debug文件夾生成的MyDll.dll文件復制到與MyDll.java同一個目錄。
          1 JNIEXPORT jint JNICALL Java_MyDll_sum
          2 (JNIEnv *env, jobject obj, jint _arg_i, jint _arg_j) 
          3 {
          4     int m_i = _arg_i;
          5     int m_j = _arg_j;
          6     int temp = m_i+m_j;
          7     return temp;
          8 }

          6,運行Java文件,輸出一下結果


          7, 本例中也是參考網上的一些例子,弄了也是好久才做出來,所以貼出來加深印象。在做的過程中需要注意細節。
           
          posted on 2013-06-03 16:15 ForMeBlog 閱讀(2983) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 西乌| 社旗县| 屯留县| 莲花县| 台州市| 定西市| 澄迈县| 博湖县| 定襄县| 双鸭山市| 永川市| 金坛市| 孝义市| 兰西县| 广汉市| 枣阳市| 屏东市| 色达县| 从化市| 西华县| 佛冈县| 衡东县| 朝阳县| 维西| 安岳县| 庐江县| 高邑县| 宜章县| 高阳县| 新蔡县| 靖州| 昌图县| 遂平县| 盐源县| 新闻| 苍南县| 瑞金市| 定陶县| 贵港市| 神农架林区| 西贡区|