JNative中给DLL传入数组



// 调用DLL,取出数组中的最大值
public voic fnGetMax(int[] arrInt) {

try
...
...

// 创建JNative对象
JNative jnative = JNative("test.dll","fnGetMax");

// 为数组创建空间
Pointer aArrIntInput = new Pointer(MemoryBlockFactory.createMemoryBlock(4 * arrInt.length));

// 初始化数组
for (int i = 0; i < arrInt.length; i++) {
aArrIntInput.setIntAt(4 * i, arrInt[i]);
}

// 设定传入参数
jnative.setParameter(0, pArrIntInput); // 数组指针
jnative.setParameter(1, arrInt.length); // 数组大小

// 设定返回类型
jnative.setRetVal(Type.INT);

// 调用DLL
jnative.invoke();

// 打印返回值
int iRet = jnative.getRetValAsInt();
System.out.println(iRet);

catch
...
...
}


double的场合

// 传入和返回类型是double
double dParam = 10.23;
...
...
jnative.setParameter(0, Type.DOUBLE, Stirng.valueOf(dParam));
...
jnative.setRetVal(Type.DOUBLE);
...
String dRet = jnative.getRetVal();
System.out.println(dRet);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值