利用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不能调用?
VB里为什么有的DLL直接通过引用可以使用?有的需要通过declare申明外部函数?这些DLL有什么差别?
1、为什么PB能通过DECLARE声明而VB不行?
2、如果这个dll中的 ......
目前遇到的问题是:
存放在远程服务器端c/s程序一有更新,如何做到客户端立即响应弹出有最新升级的提示窗口。
本来有点思路:采用WCF+windowns服务+定时器的方式也能实现,但是每台客户端机子每隔都去访问一下远程 ......
内容涉及:C、C++、STL、VC++、MFC、COM、ATL、Windows网络编程、数据库编程、Windows驱动编程、软件工程、Windows操作系统编程,等等方面。
下载地址:http://www.cctry.com/forumdisplay.php?fid=46
......
请问各位高手如何用C/C++获得系统未安装补丁
好像很专业的东西。。。
查注册表
每个补丁如果安装了都会在注册表里面登记
请问能不能更清晰些,我想用c\c++查出来,不好意思,我是新手。还望指教。谢
分值 ......