jni java返回数组_java – 如何在JNI中返回数组?

我有一个我通过JNI访问的本机函数,需要将数组的内容返回给

java.我的函数原型如下:

JNIEXPORT jcharArray JNICALL Java_jniusb_Main_receiveData

(JNIEnv *, jclass, jchar);

这是用javah.exe生成的.

所以在函数的代码中我有一个数组’unsigned char InputPacketBuffer [65]’,我想返回java.但是,我在将此映射到我的返回类型’jcharArray’时遇到问题.

在另一个函数中,我使用JNI提供的’GetCharArrayRegion’方法将’jcharArray’类型的输入参数转换为’jchar’数组,然后我可以将其转换为’unsigned char’数组.基本上,我需要做相反的事情来转换到另一个方向,但我无法在JNI规范pdf中找到合适的JNI方法.有人知道怎么做吗?

更新:

我在andy的链接上找到了正确的JNI函数–SetCharArrayRegion().

fyi – “Java Native Interface – 程序员指南和规范”给出了使用其函数的错误示例.

(*env)->SetCharArrayRegion(env, elemArr, 0, len, chars);

不编译.相反,正确的语法是:

(*env).SetCharArrayRegion(elemArr, 0, len, chars);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值