java 调用dll之JNative(2)

来源:互联网 发布:小米手环2 淘宝 编辑:程序博客网 时间:2024/05/16 03:13

JNative相比jni简单很多,需要下载JNative.jar,JNativeCpp.dll(windows),libJNativeCpp.so(linux)

将目标dll和JNativeCpp.dll 复制到Windows\System32下

// 打开数据流句柄public static long openDataStream(byte[] lpszDiskRoot) throws NativeException,IllegalAccessException {JNative PegRoute = null;try {if (PegRoute == null) {// 1. 利用org.xvolks.jnative.JNative来加载DLL:参数1.PegRoute为类名// 2.HCTInitEx方法名PegRoute = new JNative("StreamData", "OpenDataStream");// 2.设置要调用方法中的参数:0 表示第一个以此类推Pointer a = new Pointer(MemoryBlockFactory.createMemoryBlock(4 * 10));a.setMemory(lpszDiskRoot);PegRoute.setParameter(0, a);// 3.设置返回参数的类型PegRoute.setRetVal(Type.INT);// 4.执行方法PegRoute.invoke();// 调用方法}System.out.println("调用的DLL文件名为:" + PegRoute.getDLLName());System.out.println("调用的方法名为:" + PegRoute.getFunctionName());// 5.返回值return Integer.parseInt(PegRoute.getRetVal());} finally {if (PegRoute != null) {// 6.释放系统资源PegRoute.dispose();}}}


原创粉丝点击