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

          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文件復(fù)制到你項目里面,就是項目名的文件夾里面。


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

          5,將下面代碼復(fù)制到MyDll.cpp文件的后面,build項目,將項目文件夾下的Debug文件夾生成的MyDll.dll文件復(fù)制到與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文件,輸出一下結(jié)果


          7, 本例中也是參考網(wǎng)上的一些例子,弄了也是好久才做出來,所以貼出來加深印象。在做的過程中需要注意細(xì)節(jié)。
           
          posted on 2013-06-03 16:15 ForMeBlog 閱讀(2981) 評論(0)  編輯  收藏 所屬分類: Java

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 红桥区| 新巴尔虎右旗| 宜阳县| 商洛市| 东辽县| 高陵县| 胶州市| 巩留县| 湄潭县| 商洛市| 凉城县| 行唐县| 松阳县| 肥城市| 明溪县| 福安市| 安乡县| 玉环县| 宝坻区| 兴义市| 新泰市| 杭锦旗| 米脂县| 册亨县| 枞阳县| 伊吾县| 南丹县| 吕梁市| 米脂县| 浙江省| 合川市| 辽阳县| 弋阳县| 班玛县| 柳江县| 榕江县| 滦南县| 栾城县| 中阳县| 庆安县| 界首市|