高分求助---jni如何处理java二维数组的传递问题。 高分求助---jni如何处理java二维数组的传递问题。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 和其他的JIN处理没有什么特别的只是要看你的数组是由哪种基本类型组成的http://www.jcwcn.com/html/Java/10_43_37_489.htm 我也被这个问题难住了,哪位会的给讲一下,最好给出例子代码。比如一个//输入一个boolean二维数组java代码://输入一个boolean二维数组 public native void setArray(boolean[][] blList); boolean[][] blList = { {true, false},{true,true},{false,false} }; myclass.setArray(blList);生成头文件代码:JNIEXPORT void JNICALL myclass_setArray (JNIEnv *, jobject, jobjectArray);二维数组boolean[][] 被转换为jobjectArray,C文件代码:JNIEXPORT void JNICALL Java_com_sundy_jnidemo_ChangeMethodFromJni_setArray(JNIEnv *env, jobject, jobjectArray ba){ jobject pba = (env)->GetObjectArrayElement (ba, 0 ); jsize len = (env)->GetArrayLength(ba); int i=0; for( i=0; i < len; i+=1 ) { printf( "boolean = %s\n", pba ); }}问题就是怎么把jobjectArray 转换为一个二维的jbooleanArray或者把jobjectArray 中的元素(jobject pba = (env)->GetObjectArrayElement (ba, 0 );)转换为一个一维的jbooleanArrayhttp://www.iplab.cs.tsukuba.ac.jp/~liuxj/jdk1.2/zh/docs/guide/jni/spec/functions.doc.html#17314这里边根本没有二维数组的概念,也没有相互转化的方法救命啊!! 我也被这个问题难住了,哪位会的给讲一下,最好给出例子代码。比如一个//输入一个boolean二维数组java代码://输入一个boolean二维数组 public native void setArray(boolean[][] blList); boolean[][] blList = { {true, false},{true,true},{false,false} }; myclass.setArray(blList);生成头文件代码:JNIEXPORT void JNICALL myclass_setArray (JNIEnv *, jobject, jobjectArray);二维数组boolean[][] 被转换为jobjectArray,C文件代码:JNIEXPORT void JNICALL Java_com_sundy_jnidemo_ChangeMethodFromJni_setArray(JNIEnv *env, jobject, jobjectArray ba){ jobject pba = (env)->GetObjectArrayElement (ba, 0 ); jsize len = (env)->GetArrayLength(ba); int i=0; for( i=0; i < len; i+=1 ) { printf( "boolean = %s\n", pba ); }}问题就是怎么把jobjectArray 转换为一个二维的jbooleanArray或者把jobjectArray 中的元素(jobject pba = (env)->GetObjectArrayElement (ba, 0 );)转换为一个一维的jbooleanArrayhttp://www.iplab.cs.tsukuba.ac.jp/~liuxj/jdk1.2/zh/docs/guide/jni/spec/functions.doc.html#17314这里边根本没有二维数组的概念,也没有相互转化的方法救命啊!! 我也被这个问题难住了,哪位会的给讲一下,最好给出例子代码。比如一个//输入一个boolean二维数组java代码://输入一个boolean二维数组 public native void setArray(boolean[][] blList); boolean[][] blList = { {true, false},{true,true},{false,false} }; myclass.setArray(blList);生成头文件代码:JNIEXPORT void JNICALL myclass_setArray (JNIEnv *, jobject, jobjectArray);二维数组boolean[][] 被转换为jobjectArray,C文件代码:JNIEXPORT void JNICALL Java_com_sundy_jnidemo_ChangeMethodFromJni_setArray(JNIEnv *env, jobject, jobjectArray ba){ jobject pba = (env)->GetObjectArrayElement (ba, 0 ); jsize len = (env)->GetArrayLength(ba); int i=0; for( i=0; i < len; i+=1 ) { printf( "boolean = %s\n", pba ); }} JAVA中没有二级指针的概念,JNI也没提供相应的操作函数.强制转换过程会发生错误. JAVA中没有二级指针的概念,JNI也没提供相应的操作函数.强制转换过程会发生错误.哪该怎么办? 谁能告诉我repaint方法和update方法究竟是干什么用的 用java怎么获取windows系统中的浏览器历史记录? java0基础菜鸟自学求助。 定义一个接口,要考虑什么问题? 今天是我的生日 JVM原理 关于new()方法 哪位朋友知道echo? eclipse 和 websphere 区别大吗? 请高手指教 关于String java或者jsp里面可以根据链接的地址,保存网页吗?比如我要保存www.baidu.com/index.html我可以通过一个什么方法自动的保存呢(难点是在 JAVA_牛场 19893738
只是要看你的数组是由哪种基本类型组成的http://www.jcwcn.com/html/Java/10_43_37_489.htm
比如一个//输入一个boolean二维数组
java代码:
//输入一个boolean二维数组
public native void setArray(boolean[][] blList);
boolean[][] blList = { {true, false},{true,true},{false,false} };
myclass.setArray(blList);
生成头文件代码:JNIEXPORT void JNICALL myclass_setArray
(JNIEnv *, jobject, jobjectArray);二维数组boolean[][] 被转换为jobjectArray,
C文件代码:
JNIEXPORT void JNICALL Java_com_sundy_jnidemo_ChangeMethodFromJni_setArray
(JNIEnv *env, jobject, jobjectArray ba)
{
jobject pba = (env)->GetObjectArrayElement (ba, 0 ); jsize len = (env)->GetArrayLength(ba);
int i=0;
for( i=0; i < len; i+=1 )
{
printf( "boolean = %s\n", pba );
}
}
问题就是怎么把jobjectArray 转换为一个二维的jbooleanArray
或者把jobjectArray 中的元素(jobject pba = (env)->GetObjectArrayElement (ba, 0 );)
转换为一个一维的jbooleanArray
http://www.iplab.cs.tsukuba.ac.jp/~liuxj/jdk1.2/zh/docs/guide/jni/spec/functions.doc.html#17314
这里边根本没有二维数组的概念,也没有相互转化的方法
救命啊!!
比如一个//输入一个boolean二维数组
java代码:
//输入一个boolean二维数组
public native void setArray(boolean[][] blList);
boolean[][] blList = { {true, false},{true,true},{false,false} };
myclass.setArray(blList);
生成头文件代码:JNIEXPORT void JNICALL myclass_setArray
(JNIEnv *, jobject, jobjectArray);二维数组boolean[][] 被转换为jobjectArray,
C文件代码:
JNIEXPORT void JNICALL Java_com_sundy_jnidemo_ChangeMethodFromJni_setArray
(JNIEnv *env, jobject, jobjectArray ba)
{
jobject pba = (env)->GetObjectArrayElement (ba, 0 ); jsize len = (env)->GetArrayLength(ba);
int i=0;
for( i=0; i < len; i+=1 )
{
printf( "boolean = %s\n", pba );
}
}
问题就是怎么把jobjectArray 转换为一个二维的jbooleanArray
或者把jobjectArray 中的元素(jobject pba = (env)->GetObjectArrayElement (ba, 0 );)
转换为一个一维的jbooleanArray
http://www.iplab.cs.tsukuba.ac.jp/~liuxj/jdk1.2/zh/docs/guide/jni/spec/functions.doc.html#17314
这里边根本没有二维数组的概念,也没有相互转化的方法
救命啊!!
比如一个//输入一个boolean二维数组
java代码:
//输入一个boolean二维数组
public native void setArray(boolean[][] blList);
boolean[][] blList = { {true, false},{true,true},{false,false} };
myclass.setArray(blList);
生成头文件代码:JNIEXPORT void JNICALL myclass_setArray
(JNIEnv *, jobject, jobjectArray);二维数组boolean[][] 被转换为jobjectArray,
C文件代码:
JNIEXPORT void JNICALL Java_com_sundy_jnidemo_ChangeMethodFromJni_setArray
(JNIEnv *env, jobject, jobjectArray ba)
{
jobject pba = (env)->GetObjectArrayElement (ba, 0 ); jsize len = (env)->GetArrayLength(ba);
int i=0;
for( i=0; i < len; i+=1 )
{
printf( "boolean = %s\n", pba );
}
}