易截截图软件、单文件、免安装、纯绿色、仅160KB

利用jni如何在C中将String数组转化为char**

java代码如下:
Java code:


public class TestJni {

private static native void print(School s);

public static void main(){

School s = new School();
print(s);
}


}

class School{

String[] studentNames = {"tom","jack","sophia"};

}




在C代码中,如何把这个s.studentNames转化成为char**呢?
我写了一个ReadStringArray()的函数,但是是有问题的,在原有字符串后面会加几个乱码。
C/C++ code:

char** ReadStringArray(JNIEnv * env, jclass jc, jobject jo, char* name, int size){
jfieldID id_array = env->GetFieldID(jc,name,"[Ljava/lang/String;");
jobjectArray joa_array = (jobjectArray)env->GetObjectField(jo,id_array);
char** stringArray = new char*[size];

for(int i = 0; i < size; i++){

jobject obj_string = env->GetObjectArrayElement(joa_array,i);
jclass class_string = env->GetObjectClass(obj_string);
jfieldID id_value = env->GetFieldID(class_string,"value","[C");
jcharArray jca_value = (jcharArray)env->GetObjectField(obj_string,id_value);
int jca_size = env->GetArrayLength(jca_value);


相关问答:

为什么C写DLL文件C、PB能调用VB不能调用

为什么C写的DLL文件C、PB能调用VB不能调用?
VB里为什么有的DLL直接通过引用可以使用?有的需要通过declare申明外部函数?这些DLL有什么差别?

1、为什么PB能通过DECLARE声明而VB不行?
2、如果这个dll中的 ......

C/S程序在线自动更新问题,谢谢求教!

目前遇到的问题是:
存放在远程服务器端c/s程序一有更新,如何做到客户端立即响应弹出有最新升级的提示窗口。
本来有点思路:采用WCF+windowns服务+定时器的方式也能实现,但是每台客户端机子每隔都去访问一下远程 ......

C、C++、VC++ 精品电子书发布啦!

内容涉及:C、C++、STL、VC++、MFC、COM、ATL、Windows网络编程、数据库编程、Windows驱动编程、软件工程、Windows操作系统编程,等等方面。

下载地址:http://www.cctry.com/forumdisplay.php?fid=46

......

如何查找系统未安装补丁C - C/C++ / 新手乐园

请问各位高手如何用C/C++获得系统未安装补丁
好像很专业的东西。。。

查注册表
每个补丁如果安装了都会在注册表里面登记

请问能不能更清晰些,我想用c\c++查出来,不好意思,我是新手。还望指教。谢

分值 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号