问题一:
我有一个带有静态方法的java类:
class Test {
static public void show (String value) {
// dosomething with value
}
}
如果我想从 C++ 调用它:
jstring value = env->NewStringUTF("Hello, World");
// ExceptionCheck after NewStringUTF.
env->CallStaticVoidMethod(the_jclass, the_jmethodID, value);
// ExceptionCheck after CallStaticVoidMethod.
我应该放推送本地框架 before 新字符串UTF并把流行本地框架 after 调用静态Void方法发布本地参考?
问题2:
我看到声明流行本地框架, it's:
jobject PopLocalFrame(JNIEnv *env, jobject result);
读完jni文档后,我还是不明白为什么PopLocalFrame需要一个结果参数 and a 返回值。您能举个例子来说明它的存在价值吗?
我应该放PushLocalFrame
before NewStringUTF
并把PopLocalFrame
after CallStaticVoidMethod
发布本地参考?
在这种特殊情况下,我不明白这一点。你可以只使用DeleteLocalRef
删除本地参考而不是创建新的本地参考系。
我还是不明白为什么PopLocalFrame
需要一个结果参数和一个返回值
假设您创建了一个新的本地参考系PushLocalFrame
并且您想要删除在该框架上创建的所有本地引用except对于您想要保留的一个引用(例如,您创建了一些想要从函数返回的对象)。
您可以通过传递要保留的引用来实现此目的PopLocalFrame
,并且您返回的值是对上一个本地参考帧(现在是当前参考帧)内该对象的引用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)