env->DoSomething(arguments)
対
(*env)->DoSomething(env, arguments)
は、彼らが実際には異なるものはありますか?古いJNIの実装ですか?
env->DoSomething(arguments)
対
(*env)->DoSomething(env, arguments)
は、彼らが実際には異なるものはありますか?古いJNIの実装ですか?
それはwikipediaから、CおよびC++での書き込みJNIコードの違いです:Javaのように、C++はオブジェクトのメソッド呼び出しのセマンティクスを使用しているため、C++ JNIコードが構文的に少しクリーナーC JNI コードよりであることを
注意。 つまり、Cでは、(* env) - > を使用してenvパラメータを参照解除し、envをJNIEnvメソッドに明示的に渡す必要があります。 C++では、env パラメータはenv->を使用して参照解除され、envパラメータはオブジェクトメソッド呼び出しのセマンティクスの一部として暗黙的に渡されます( )。
これは同じことです。ほんの少しのマクロマジック。より良い(最初の)構文は、C++のコンテキストで有効になります。