2023-01-21 276
虽然有关于将jstring转到本机字符串(string nativeString = env->GetStringUTFChars(jStringVariable, NULL);)的文档,但我找不到一个示例,该示例会将jboolean转换为bool或a jint到.
谁能建议如何实现这一目标?
您只需要使用C样式铸件铸造jint int.对于jboolean到bool(如果您使用的是C99 bool type)或uint8_t(如果您使用的是std int类型)或unsigned char.
打开$NDK_ROOT/platforms/android-8/arch-arm/usr/include/jni.h,您会看到jint,jboolean等,只是typedefs.
铸造jboolean(可能只包含值JNI_FALSE或JNI_TRUE)到本机bool我会使用类似的东西:
(bool)(jboolean == JNI_TRUE)
如果也许jboolean不是来自JVM,则测试jboolean != JNI_FALSE可能被认为是更安全的.
相同的问题 – 固定.就我而言,我使用的是OpenFrameWorks,因此我不知道这是否适用于非openframeworks项目(尚未测试).但是,似乎外部函数中的前两个参数始终是” env”和” thiz”,并且需要针对每个新的外部功能明确定义这些参数.
extern "C"{
// casts the variable properly
void Java_com_package_JavaClass_someFunction( JNIEnv* env, jobject thiz, jboolean yourBool ){
myTestApp->someFunction( (bool) yourBool );
}
// "yourBool" will always be "1" because its taking the spot of "thiz" which is not null
void Java_com_package_JavaClass_someFunction( JNIEnv* env, jboolean yourBool ){
myTestApp->someFunction( (bool) yourBool );
}
// "yourBool" will always be "1" because its taking the spot of "env" which is not null
void Java_com_package_JavaClass_someFunction( jboolean yourBool ){
myTestApp->someFunction( (bool) yourBool );
}
}
以上所述是小编给大家介绍的将JNI类型转换为Native类型,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/26325.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态