由于项目需要,要做一个调用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