gpt4 book ai didi

java - 如何在 JNI 中将 char* 转换为 jcharArray

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:27:00 25 4
gpt4 key购买 nike

如何在 JNI 中将 char* 转换为 jcharArray?

我必须在//TODO 注释部分输入什么代码?

JNIEXPORT jcharArray JNICALL Java_finger_FingerPrintJNI_GetVer(JNIEnv *env, jobject thisObj){
char* version = getText(); // Returns char* data type
int version_len = strlen(version);

jcharArray j_version_array = env->NewCharArray(version_len + 1);

// TODO Convert char* to jcharArray

return jcharArray;
}

添加 ============================================== ========================

正如 Gearon 所建议的,当我输入以下代码时会引发错误。

jchar* jVersion = (jchar*)version;
env->SetCharArrayRegion(jcharArray, 0, version_len, jVersion);

错误信息如下。

JNIEnv_::SetCharArrayRegion(jcharArray,jsize,jsize,const jchar *)': cannot convert argument 1 from 'jchar *' to 'jcharArray'
sample.cpp(26): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

最佳答案

感谢 Gearon 提供的代码建议我的最终代码是这样的。

jchar* j_version = (jchar*)calloc(sizeof(jchar), version_len);
for(int i=0; i <= version_len; i++){
j_version[i] = (jchar) version[i];
}

jcharArray j_version_array = env->NewCharArray(version_len + 1);
env->SetCharArrayRegion(j_version_array, 0, version_len , j_version);

关于java - 如何在 JNI 中将 char* 转换为 jcharArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38493156/

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