gpt4 book ai didi

java - c JNI调用java函数

转载 作者:太空宇宙 更新时间:2023-11-04 03:44:48 24 4
gpt4 key购买 nike

我在c jni中的第一个函数代码是

void fun1()
{
jmethodID java_fun = (*global_env)->GetMethodID(global_env,cls_Env, "test1", "()V");
(*global_env)->CallVoidMethod(global_env,(*global_obj), java_fun);
}

我的第二个是

void fun2(int x)
{
jmethodID java_fun = (*global_env)->GetMethodID(global_env,cls_Env, "test2", "([I)V");
(*global_env)->CallVoidMethod(global_env,(*global_obj), java_fun,(int)x);
}

在我的 java 端,第一个 c 函数的代码是

private void test1()
{
System.out.printf("test1");
callfunction();
}
void callfunction()
{
System.out.printf("how i can get here??");

}

第一个问题是如何从 C 调用中获取 callfunction()?

现在第二个c函数的第二个java代码是

public int var1;
private void test2(int x)
{
System.out.printf("test2");
var1=x;
}

第二个问题是如何将c端的数据保存到java端?

谢谢

最佳答案

fun2() 中有一个拼写错误:它应该是 GetMethodID(global_env, cls_Env, "test2", "(I)V");(< strong>[ 是错误的)。

如果你想直接从 C 调用 callfunction(),使用

GetMethodID(global_env, cls_Env, "callfunction", "()V");

关于java - c JNI调用java函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25593454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com