gpt4 book ai didi

java - 转换 jstring 和追加的语法

转载 作者:搜寻专家 更新时间:2023-11-01 01:03:20 24 4
gpt4 key购买 nike

JNIEXPORT int JNICALL Java_com_ndkfoo_test_GL2JNILib_step2(JNIEnv * env, jobject obj,  jstring filePath)
{
const jbyte *str;
str = (*env)->GetStringUTFChars(env, filePath, NULL);
char* fullPath=str.append("FileName.txt"); // error
char* fullPath2=str+"fileName.txt" // error
}

有人可以指出创建定义完整路径名的正确语法吗?我认为传入 jstring 是正确的,但我不知道如何转换为 fopen() 的拉路径名。

最佳答案

尝试使用将 jstring 转换为 std:string 的函数:

void GetJStringContent(JNIEnv *AEnv, jstring AStr, std::string &ARes) {
if (!AStr) {
ARes.clear();
return;
}

const char *s = AEnv->GetStringUTFChars(AStr,NULL);
ARes=s;
AEnv->ReleaseStringUTFChars(AStr,s);
}

你的任务的解决方案:

JNIEXPORT int JNICALL Java_com_ndkfoo_test_GL2JNILib_step2(JNIEnv * env, jobject obj,  jstring filePath) {
std::string str;
GetJStringContent(env,filePath,str);
const char *fullPath = str.append("FileName.txt").c_str();
}

关于java - 转换 jstring 和追加的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8322208/

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