1,编写调用端代码(文件名:DllCaller.java)
- package com.whut.qinchao.jni;
- //qinchao 2013/12/31
- public class DllCaller {
- static {
- /**
- * 加载需要的类库(因为DllCaller.dll还需要依赖本地的类库,所以需要在它之前加载被依赖库)
- * 建议存放项目根目录,不然无法加载,或者通过不同类加载器加载导致无法正常识别.
- */
- System.loadLibrary("msvcp100d");//msvcp100d.dll
- System.loadLibrary("msvcr100d");//msvcr100d.dll
- System.loadLibrary("DllCaller");//DllCaller.dll
- }
- public native static int VrpJniCaller(boolean line,boolean wnd,String path);
- public static void main(String[] args) {
- String InputPath = "F:\\WebVrpData";
- DllCaller.VrpJniCaller(false,false,InputPath);
- }
- }
2,执行如下命令生成.h文件:
javac .\com\whut\qinchao\jni\DllCaller.java;
javah -jni com.whut.qinchao.jni.DllCaller会生成一个com_whut_qinchao_jni_DllCaller.h文件(将com_whut_qinchao_jni_DllCaller.h中#include改成#include“jni”)
3,VS2010 创建动态连接库:
3.1,新建项目->Win32控制台程序->DLL(勾选“空工程”)。
3.2,新建*.cpp文件,对com_whut_qinchao_jni_DllCaller.h中的方法 (JNIEXPORT jint JNICALL Java_com_whut_qinchao_jni_DllCaller_VrpJniCaller(JNIEnv *, jclass, jboolean, jboolean, jstring);)进行实现。
3.3,将jni.h和jni_md.h文件拷贝到当前目录。