如何使用 JNI 将结构数组从 C++ dll 返回到 Java Applet

How can return structure array from a C++ dll to Java Applet using JNI?

本文关键字:返回 dll Java Applet C++ JNI 何使用 结构 数组      更新时间:2023-10-16

我有一个C++的dll类。我想使用 JNI 方法将结构数组返回给 Java Applet。如何从 Java 访问它?

(结构数组包含不同类型的结构)

已经返回了一个字符串数组---

public native String[] fun();
JNIEXPORT jobjectArray JNICALL Java_fun(JNIEnv* pEnv, jobject Pobj)
{
}

但我不知道如何使用结构数组。

谁能告诉我。

您需要构建与 Java 对象相同的结构。将值从C++结构复制到 JNI 中的 Java 结构中。返回 Java 结构并将其用作普通 Java 对象。

《太阳在太阳》中有几个很好的代码示例: STrings and Arrays

尝试一下并告诉我们您的进度。

你可以使用JavaCPP,它为我们生成所有讨厌的C++JNI代码。然后我们只需要从 Java 调用 Pointer.position() 来导航原生结构数组。