env
たとえば、間接参照がある場合とない場合で使用されるインターフェイスポインタが表示され続けます。
env->DoSomething(arguments)
対。
(*env)->DoSomething(env, arguments)
それらは実際には異なるものですか?古いJNI実装のものですか?
env
たとえば、間接参照がある場合とない場合で使用されるインターフェイスポインタが表示され続けます。
env->DoSomething(arguments)
対。
(*env)->DoSomething(env, arguments)
それらは実際には異なるものですか?古いJNI実装のものですか?
それらは同じものです。ほんの少しのマクロ魔法。より良い(最初の)構文は、C++コンテキストで有効になります。
これは、ウィキペディアのCとC++でjniコードを記述することの違いです。
C ++ JNIコードは、Javaと同様に、オブジェクトメソッド呼び出しセマンティクスを使用するため、構文的にはCJNIコードよりもわずかにクリーンであることに注意してください。つまり、Cでは、envパラメーターは(* env)->を使用して逆参照され、envはJNIEnvメソッドに明示的に渡される必要があります。C ++では、envパラメーターはenv->を使用して逆参照され、envパラメーターはオブジェクトメソッド呼び出しセマンティクスの一部として暗黙的に渡されます。