混沌雑記帳






JNIの行ったり来たりで無駄に嵌ったのでメモ書き。
やってることは
 JavaからJNIのnative関数呼び出し
 呼び出されたnative側から呼び出し元のメンバ関数呼び出し
気をつけるのはenv->の関数に何を渡してやるか。
実態として何が渡されてるのかイマイチ判り辛いので苦労するが
この組み合わせで動いたので要するにこういうことなんだろう(お

***** JNI(native側) *****
JNIEXPORT void JNICALL Java_classpath_native_method (
 JNIEnv* env, jobject thiz, jfloat arg) {
 
 jclass clazz = env->GetObjectClass(thiz);
 jmethodID callback_func_id = env->GetMethodID(clazz, "callback_func", "(F)I");
 
 int ret = env->CallIntMethod(thiz, callback_func_id, arg);
}

***** Java側 *****
class javaclass {
 private native native_func(int arg);

 void call_native_func() {
  native_func(1.0f);
 }

 int callback_func(double in) {
  return (int)in;
 }
}
[206] (2012/02/17(Fri) 18:59:46)

投稿パス:


名前:   題名:


パスワード:  

スマホ導入 >> << 2タッチ@Android
Copyright © 混沌雑記帳. All Rights Reserved. [PHPウェブログシステム3 FLEUGELzネットマニア + 独自改造]