JNI与C++的数据类型转换

来源:互联网 发布:欧美邮箱一手数据 编辑:程序博客网 时间:2024/06/06 03:46

std::string转jstring

jstring ToJString(JNIEnv* env, const std::string& value) {  return env->NewStringUTF(value.c_str());}

jstring转std::string

std::string ToCppString(JNIEnv* env, jstring value) {  jboolean isCopy;  const char* c_value = env->GetStringUTFChars(value, &isCopy);  std::string result(c_value);  if (isCopy == JNI_TRUE)    env->ReleaseStringUTFChars(value, c_value);  return result;}

bool转jboolean

jboolean ToJBool(bool value) {  return value ? JNI_TRUE : JNI_FALSE;}

jboolean转bool

bool ToCppBool(jboolean value) {  return value == JNI_TRUE;}

其他基本数据类型可直接转换

参考自android-5.1.1_r1\frameworks\base\media\mca\filterfw\jni\jni_util.cpp

0 0
原创粉丝点击