gpt4 book ai didi

java - 如何使用用户定义的数据类型作为其参数从 java 调用 native 方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:10 24 4
gpt4 key购买 nike

我有一个以用户定义的数据类型(结构)作为参数的 native 方法。如何使用 JNI 从 Java 调用此方法?

最佳答案

如果你有这样的方法:

int cFunction(mydatatype data) ...

您不能直接调用它。您将需要一层 JNI 将其粘合在一起。


所以 JNI 函数是从您的代码中生成的:

class JavaTest {
public native int jMethod(int a);
}

在那个类上运行 javah 你会得到一个像这样的头文件:

JNIEXPORT jint JNICALL Java_Javatest_jMethod(JNIEnv*, jobject obj, jint a);

实现调用 cFunction(mydatatype) 的方法:

JNIEXPORT jint JNICALL Java_Javatest_jMethod(JNIEnv*, jobject obj, jint a) {
mydatatype data;
data.count = a;
return (jint) cFunction(data);
}

关于java - 如何使用用户定义的数据类型作为其参数从 java 调用 native 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10795754/

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