Java 中怎么能调用到dll中的函数呢?

关键是java中生的本地函数名參数和dll中的本地函数名參数一模一样。

 

 

这个程序是java中调用dll中的求和函数。

 

一,java代码部分操作

 

1.新建project

Java 调用Dll_应用程序

2.DllTest.java代码

 

package com.aizizai.calldll;

public class DllTest {

	static {

		System.loadLibrary("hellodll");
	}

	public static native int sum(int a, int b);

	public static void main(String[] args) {
		System.out.println("sum(2,5) = " + sum(2, 5));
	}

}

3. 生成头文件

 

 

Java调用dll測试\src>javac com/aizizai/calldll/DllTest.java
Java调用dll測试\src>javah com.aizizai.calldll.DllTest

 

 

二,VC利用前面的头文件生成dll。本文使用的是vs2010。

 

1. 创建项目

新建项目--> vc++ --> win32项目 --> 命名为hellodll -->应用程序类型:dll -->ok。

 

2. 加入头文件

a. 把

 

/jdk/include/jni.h

/jdk/include/win32/jawt_md.h

/jdk/include/win32/jni_md.h

拷到项目文件夹下或者Vs的include文件夹下。

b. stdafx.h中加入

 

#include "com_aizizai_calldll_DllTest.h"

 

3. 在源文件里加入函数实现

 

// hellodll.cpp : 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"

JNIEXPORT jint JNICALL Java_com_aizizai_calldll_DllTest_sum
	(JNIEnv *env, jclass ss, jint a, jint b){
		return a+b;
}

4. 生成dll

 

生成 ---> 生成dll。

就可以在项目的Debug文件夹下看到。hellodll.dll文件

 

三,使用

把dll文件拷到 c:\windows文件夹下,执行java程序。ok。

Java 调用Dll_#include_02