JNIEnv在C和C++中的调用方式

来源:互联网 发布:郑爽 倪妮 知乎 编辑:程序博客网 时间:2024/04/29 17:52

对于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

0 0