JAVA调用DLL
1. 新建一个JAVA类,写一些方法,用来对应dll的方法:
public class InvokeDll
{
static
{
System.loadLibrary("Dll2Java");
}
public native static boolean function(int para);
}
2. javac编译JAVA文件
javac InvokeDll.java
3. javah生成头文件
javah InvokeDll
->InvokeDll.h
头文件内容:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class InvokeDll */
#ifndef _Included_InvokeDll
#define _Included_InvokeDll
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: InvokeDll
* Method: function
* Signature: (I)Z
*/
JNIEXPORT jboolean JNICALL Java_InvokeDll_function
(JNIEnv *, jclass, jint);
#ifdef __cplusplus
}
#endif
#endif
4.建立新DLL工程(这个DLL相当于中介),添加jni.h和InvokeDll.h 到VC项目中
CPP文件:
#include <stdlib.h>
#include <stdio.h>
#include <jni.h>
#include "InvokeDll.h"
JNIEXPORT jboolean JNICALL Java_InvokeDll_function(JNIEnv *, jclass, jint para)
{
//可以使用JNIEnv中的方法
//可以调用其他DLL方法
}
5.编译CPP。