JNIEnv的使用在C和C++中的区别

本文探讨了在C和C++中使用JNIEnv的差异。在C语言环境中,通过`(*env)->NewStringUTF(env, "Hello from JNI!");`创建字符串,而在C++中,由于类型定义不同,应使用`env->NewStringUTF("Hello from JNI!");`避免编译错误。" 131905784,15209916,软件测试面试技巧与经验分享,"['面试', '职场和发展', '软件测试', '接口测试', '性能测试']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JNIEnv的使用在C和C++中的区别


http://my.oschina.net/redhouse/blog/82208

对于JNIEnv *env来说,在C中调用:

(*env)->NewStringUTF(env, "Hello from JNI!");


而在C++中如果按照上述调用则会发生'base operand of '->' has non-pointer type '_JNIEnv''错误,需要如下调用:

env->NewStringUTF("Hello from JNI!");


原因:参见jni.h中对于JNIEnv的定义:

#if defined(__cplusplus)

typedef _JNIEnv JNIEnv;

#else

typedef const struct JNINativeInterface* JNIEnv;

#endif


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值