通过JNI,C调用Java方法,返回值是数组该怎么用? 通过JNI,C调用Java方法,返回值是数组该怎么用?普通的int可以用CallIntMethod.如果是int数组呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没用过JNI,现在都流行用JNA了…………比JNI好用多了……………… 我这里有demo 你要就流个email吧! 我做过String的数组,你参考下,我感觉道理一样。jobjectArray ret = 0;jsize len = 5;jstring str;string value("hello");ret = (jobjectArray)(env->NewObjectArray(len, env->FindClass("java/lang/String"), 0));for(int i = 0; i < len; i++){ str = env->NewStringUTF(value..c_str()); env->SetObjectArrayElement(ret, i, str);}return ret; 开始时不知道jna啊.暂时还使用jni吧,有时间再研究研究jna. 多了个点,呵呵str = env->NewStringUTF(value..c_str()); jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) {估计是调用object, 不敢确定之后你强制把jobject转为jIntArray或你想要的array 不是我要的.我要的是java中有个方法 int[] funcA();在c中要怎样调用它.我查到如果是int funcA();这样返回值不是数组的方法调用时使用 int value = CallIntMethod(...); 但不知道如果返回值是数组了该怎么调用,因为没有 CallIntArrayMethod(...); 这样的方法. jobject object = CallObjectMethod(...);jIntArray result = (jIntArray)object; 确实强制转换即可.开始没成功是因为没有加上对NULL的判断.谢各位. java用jna调用C的时候怎么获取C中输出参数的值 如何使CPU的使用率一直保持在50%? JDK安装一直错误,~~~~~~~~~~~~ 怎么将ASC码转化为字符啊? JAVA问题 难题,将JAVA绘制的图形输出JPEG文件, 请问高手这个用java语言怎么实现? 如何让JFrame开始显示的时候就已经是最大化状态? 提示已定义类型Employee错误 菜鸟问题-从一个frame调用另一个frame,如何关闭或者隐藏第一个frame? 如何学好 JAVA 之如何学JAVA 中的专业英语? catch 捕获异常后面的语句还会不会执行
我这里有demo 你要就流个email吧!
jsize len = 5;
jstring str;
string value("hello");ret = (jobjectArray)(env->NewObjectArray(len, env->FindClass("java/lang/String"), 0));
for(int i = 0; i < len; i++)
{
str = env->NewStringUTF(value..c_str());
env->SetObjectArrayElement(ret, i, str);
}
return ret;
str = env->NewStringUTF(value..c_str());
不是我要的.我要的是java中有个方法 int[] funcA();
在c中要怎样调用它.
我查到如果是int funcA();这样返回值不是数组的方法调用时使用 int value = CallIntMethod(...); 但不知道如果返回值是数组了该怎么调用,因为没有 CallIntArrayMethod(...); 这样的方法.
jIntArray result = (jIntArray)object;