随笔-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 阅读(2970) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航: