我有一个 C++ dll 类。我想使用 JNI 方法将结构数组返回给 Java Applet。如何从 Java 访问它?
(结构数组包含不同类型的结构)
已经返回一个字符串数组---
public native String[] fun();
JNIEXPORT jobjectArray JNICALL Java_fun(JNIEnv* pEnv, jobject Pobj)
{
}
但我不知道如何使用结构数组。
谁能告诉我。
我有一个 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 对象。
Sun at Sun 提供的几个很好的代码示例:字符串和数组
试试看,告诉我们你的进步。
您可以使用JavaCPP,它会为我们生成所有讨厌的 C++ JNI 代码。然后我们只需Pointer.position()
要从 Java 调用来导航本机结构数组。