高分求助---jni如何处理java二维数组的传递问题。
解决方案 »
- final变量的判断!!
- paint(Graphics g, JComponent c)方法中参数C如何使用?
- 求助下载网页图片
- 帮忙 new FileFilterDemo(); 老显示错误啊
- 谁有jacob方面比较详细的资料啊,谢谢
- 出现了个奇怪的问题!关于Robot的!!
- 如何将ACCESS的表转换为一个数组
- 学一年java了,这个问题我都解决不了,真是郁闷之极呀!!!
- 我想建立一个窗口,然后在这窗口里面用graphics画圆,矩形之类的图形,怎么做?
- 紧急求教!!请接过活的朋友告诉我这个活应该是个什么价钱啊。下午就要了。帮帮我吧。
- 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 );
}
}