java調用dll之JNative學習筆記,可以實現C/C++回調

1、下載地址:

源碼:JNative_1.4RC2_src.zip : http://jaist.dl.sourceforge.net/sourceforge/jnative/JNative_1.4RC2_src.zip

JAR包:JNative.jar : http://nchc.dl.sourceforge.net/sourceforge/jnative/JNative.jar

如果以上版本不能完成下載,說明版本有可能更新,請從以下地址中下載:

Resource URL: http://jnative.sourceforge.net/ 

Source Code: http://sourceforge.net/projects/jnative 

Detailed Review: http://jnative.free.fr 

JavaDOC: http://jnative.free.fr/docs/

JNative相對於其它同類開源組件的優點:

1.容易使用

2.對數據類型的處理做的出色

3.支持CallBack

下面以一個小Demo來學習一下JNative:

1.理解文件用途

JNative_1.4RC2_src.zip是JNative源代碼的壓縮包把它解壓後從中找到libJNativeCpp.so和JNativeCpp.dll兩個文件.JNativeCpp.dll應用在Windows平臺下.把它放在c:\windows\system32目錄下.libJNativeCpp.so應用在Linux平臺下.放在哪個目錄,這個我不知道.

把JNative.jar加入到所需的工程中.

把要調用的dll文件也放在c:\windows\system32目錄下

2.測試類

package com.xgz.jnative;

import org.xvolks.jnative.JNative;

import org.xvolks.jnative.Type;

import org.xvolks.jnative.pointers.memory.MemoryBlockFactory;

 

public class Test {

 

public static void main(String[] args)throws Exception {

   //系統加載dll文件有兩種寫法1.loadLibrary方法:把dll文件拷貝到c:\windows\system32目錄下,引用時只需寫dll名字2.load方法:寫dll文件的完整路徑

   System.loadLibrary("InterfaceFun");//InterfaceFun是dll文件

   //參數說明InterfaceFun dll名,AddZhiYe函數名

   JNative jnative = new JNative("InterfaceFun","AddZhiYe");

   //設置此函數的返回值

   jnative.setRetVal(Type.INT);

   int i=0;

   //賦予參數值

   jnative.setParameter(i++, Type.STRING,"127.0.0.1");

   jnative.setParameter(i++, Type.STRING,"sa");

   jnative.setParameter(i++, Type.STRING,"sa");

   jnative.setParameter(i++, Type.STRING,"程序員");

   jnative.setParameter(i++, Type.INT,"23");

   jnative.setParameter(i++, Type.INT,"23");

   //函數執行

   jnative.invoke();

   //打印函數返回值

   System.out.println(Integer.parseInt(jnative.getRetVal()));

}

 

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章