我有一个简单的问题,我似乎无法找到答案。我在C ++中编写了一个方法,它应该在Java中调用一个接受对象的方法。例如,我的Java代码有:
public class MyClass {
public class ReturnType {
...
}
public void methodToBeCalledFromC( ReturnType obj ) {
...
}
}
我的C ++有:
const jclass classID = s_env->FindClass( className );
const jmethodID methodID = s_env->GetMethodID( classID, "methodToBeCalledFromC", "(LMyClass;)V" );
// The call.handler() function returns a reference to the ReturnType object
// This produces a compilier warning and causes a seg-fault.
s_env->CallVoidMethod( call.handler(), jmid, userInfo );
我检查了classID和methodID以及call.handler()
正在返回一个我称之为NewGlobalRef()
的jbject,所以我认为一切正常。
可以像这样传递一个作业吗?
答案 0 :(得分:3)
检查编译器警告 - 它可能告诉你一些重要的事情!