有没有办法使用方法的函数指针从java调用本机(c ++)方法?
基本上我想用它来回调。一旦java中的某个事件被触发,我希望java调用c ++方法。 Java在编译时不会知道这个方法 - 它后来在一个单独的c ++库中创建 - 所以我需要以某种方式在运行时将方法从c ++传递给java。
我的想法是将函数指针传递为int(例如void(*)(args)
)并使java解析c ++方法。
澄清 - 在c ++中,我有类似的东西:
void callback(args)
{
...
}
...
// Use jni to call java method "registerSomeJavaCallback()"
//
registerSomeJavaCallback((int)&callback)
现在在java中我需要这样的东西:
void registerSomeJavaCallback(int fpointer) {
native void m = getNativeMethodFromPointer(fpointer) // <- This
//
// ... Register event that fires m as callback
}
谢谢!