gpt4 book ai didi

java - 从 Java 到 C++ JNI 获取字符串数组

转载 作者:可可西里 更新时间:2023-11-01 18:17:15 25 4
gpt4 key购买 nike

美好的一天,我正在尝试使用 JNI 将 Java 字符串数组复制到 C++ 数组。我已经试过了,但似乎没有用。

char *myarray;

JNIEXPORT void JNICALL
Java_com_Example_accessArray(JNIEnv *env, jobject obj, jobjectArray stringArrays){
int size;
size = env->GetArrayLength(stringArrays);
myarray = env->GetCharArrayRegion(stringArrays, 0, size, null);

}

myarray 中的值是否与传递的 Java 数组中的值相同?或者如何将通过 JNI 传递的 java String 数组的值复制到 C++ 数组,以便 C++ 中的数组拥有相同的值?提前致谢。

最佳答案

你传递了一个对象数组,所以你不能只从这个数组中获取字符。一种方式是这样的:

int size = env->GetArrayLength(stringArrays);

for (int i=0; i < size; ++i)
{
jstring string = env->GetObjectArrayElement(stringArrays, i);
const char* mayarray = env->GetStringUTFChars(string, 0);
.... do some work or copy it to a c++ array of char*....
env->ReleaseStringUTFChars(string, myarray);
env->DeleteLocalRef(string);
}

关于java - 从 Java 到 C++ JNI 获取字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19591873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com