Простой вопрос, поставленный кратко:
Почему именно
JNIEnv *g_env = NULL;
(*g_env)->ExceptionDescribe(g_env);
компилируется в gcc (C)
, но не в g ++ (C ++)
error: base operand of ‘->’ has non-pointer type ‘JNIEnv’ {aka ‘JNIEnv_’}
Поскольку я работаю в основном с C ++, я не понимаю, почему он должен компилироваться.Как указано в ошибке, разыменование указателя приведет к появлению «переменной», а не указателя.То есть: в C ++ это будет либо
g_env->ExceptionDescribe
, либо
(*g_env).ExceptionDescribe
, а не JNIEnv **