char* argv[] 指针数组传入jni
来源:互联网 发布:手机怎么看淘宝等级 编辑:程序博客网 时间:2024/05/23 00:00
比如说c中有 int safe(int argc,char* argv[]){}char* argv[] 这个指针数组 怎么传到jni中?如果 写成这样
public class Safe { public native static int safe(int argc, String[] argv); static { System.loadLibrary("safe"); }}
而本地方法中
JNIEXPORT jint JNICALL Java_Safe_safe(JNIEnv *env, jclass cl, jint argc, jobjectArray argv){ int j; jobject x = (*env)->GetObjectArrayElement(env,argv,j);}
又怎么把这个x 转成原来一样的指针数组char* argv[]?
在java中,String[]类型是对象,所以在jni中对应的是jobjectArray
用GetObjectArrayElement()获得该对象
给出例子:
//对数组中的每一个字符串进行转化JNIEXPORT void JNICALL Java_test_D_printsome (JNIEnv * env, jobject jobj, jobjectArray array){ jsize len = (*env)->GetArrayLength(env, array); char str[10][128]; int i; for(i = 0; i < len; i++){
//获得jobject对象,并将jobject对象向jstring对象转化 jstring string = (jstring)((*env)->GetObjectArrayElement(env, array, i));//获得array对象 const char * row = (*env)->GetStringUTFChars(env, string, 0);//将jstring类型转化为char类型 strcpy(str[i], row); } for(i = 0; i < len; i++){ printf("%s", str[i]); }}(*env)->ReleaseStringUTFChars(env,jrow,row);//释放jni
jstring string = ((*env)->GetObjectArrayElement(env, array, i))这句还可以改成:
jobject x = (*env)->GetObjectArrayElement(env, arrar, i);
jstring string = (jstring)x;
- char* argv[] 指针数组传入jni
- char argv, char argv[], char* argv, char argv[][], char * argv[], char** argv, char (*argv)[]
- char* ,char[],指针与数组
- char数组与char指针
- char数组和char指针
- char 指针操作char数组
- char数组与char指针
- C++ 指向指针的指针 for example : char ** argv
- char*argv[]
- char **argv与char *argv[]
- main(int argc, char **argv)参数argc,argv说明和指向指针的指针变量
- 对char **argv的理解(多级指针)
- 二维char数组与二维char指针
- char *指针与char 数组的区别
- 由一题讨论C语言中的“指针数组作main函数的形参”即 main(int argc,char *argv[])的使用
- 数组指针char *lineptr[MAXLINE]
- char** argv与char *argv[]区别
- C++ - char** argv vs. char* argv[]
- Hadoop-1.0.0 HDFS append操作深入分析
- sql 2000命令行修改登录密码
- 基于配置管理的Scrum开发流程
- tomcat:tomcat的OutOfMemoryError解决
- SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较
- char* argv[] 指针数组传入jni
- Android APK 签名机制
- MyEclipse 相关error
- 将JAVA编为exe的几种方法
- web页面入门
- Android Sensors
- CSAPP第7章小结--链接
- 经典人生语录——并记住了至少可以成熟5岁
- unity3d 中动画的添加