java 调用dll之JNative(2)

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();
			}
		}
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值