2011-11-10 6 views
11

実際に、私はC++関数を呼び出します元のオブジェクトの値を取得します。このオブジェクトのJavaコード宣言を考慮すると:jobject配列の使い方は?</p> <blockquote> <p>JNIEXPORT無効JNICALL Java_test_main_JniFunctions_testObject(JNIEnvの* envを、jオブジェクトOBJ、jobjectArray objArray){....}</p> </blockquote> <p>そして、何I:(JNI)

jniFct.testObject(new Object[][] 
     { 
      {"testTable"}, 
      {0, 0.0, "aaa"}, 
      {1, 1.1, "bbb"}, 
      {2, 2.2, "ccc"} 
     }); 

例では、2番目の列の3番目の行から値を取得します。

誰でもそれを行う方法についてのアイデアがありますか?

答えて

12
jobject row = env->GetObjectArrayElement(objArray, 2); 
jobject value = env->GetObjectArrayElement((jobjectArray)row, 1); 
const char* cvalue = env->GetStringUTFChars((jstring)value, 0); 
+0

ありがとうございましたが、私にはエラーが出ます::> IntelliSense: "const char *"型の値は "char *"型のエンティティを初期化するために使用できません。 * "" "" ""文字列 "" "に、それは私にそのような種類の価値" "" <ü "" "を与えます..... – Jsncrdnl

+0

コンパイルエラーはもっと見るのが面白いでしょう。私は、 'const char * cvalue'を使う必要があると思います。私は答えを編集します... – weekens

+0

素晴らしい!それはうまくいった!ありがとうございました ! ^^ – Jsncrdnl

関連する問題

 関連する問題