我想从java(android)代码调用本地C++方法,并将java函数作为参数传递,以便我可以将函数指针保存在C++代码,并从本机代码中激活它。如何将java函数指针传递给C++本机代码
我选择了实现使用匿名类在Java中的函数指针,我调用本机的功能从Java如下:
interface FunctionPtrHelper {
bool function(String param);
}
NativeFunc(param1,param2,new FunctionPtrHelper() {
public bool myFunction(String param) {
//body of my function
}});
我怎样才能让痛饮/ JNI知道第三个参数(它实际上是一个类)并将其转换为C++中的函数指针(它将包含'myFunction')?
万一不可能,是否有另一种方法将函数指针从java传递给C++?
我不知道JNI这样工作。您正在使用jobject作为参数调用本地方法。在这个对象上,你可以像平常一样调用一个方法,知道它的名字和签名。 –
也可以使用[JavaCPP](http://code.google.com/p/javacpp/#Creating_Callback_Functions)轻松创建回调。让我知道你是否想要更多细节! –