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; } }
|