小编kal*_*ala的帖子

JNI 包装器从 C++ 读取列表并返回到 JAVA

我有一个要求,我需要使用 JNI 将一些值从 C++ 传递到 JAVA。根据要求,c++ 代码的输入是一条带有点列表的线,我必须读取每个点的 x 和 y 坐标并返回到 java 代码。我已将列表声明为 std::list> listofpoints; 并读取 x 和 y 坐标为

for(size_t j = 0; j < track->geometry.points.size(); ++j)
{

 PointZ &p = track->geometry.points[j]             listofpoints.push_back(std::pair<double, double>(p.vertex.position.x,p.vertex.position.y)); 
Run Code Online (Sandbox Code Playgroud)

这个 geometry.points 是读取每个点,获取 x 和 y 坐标。现在我将此 listofpoints 返回给 JNI 方法。在这里我必须编写代码,以便它读取 x 和 y 坐标并将其发送到 JAVA 方法。我正在寻找一种迭代列表并获取值的方法,但是,我发现很难从 JNI 返回到 JAVA,因为 JNI 仅返回 jobjectarray。如何将此列表转换为 JNI 中的数组并发送到 JAVA 方法。我对 JNI 和 JAVA 也很陌生。

c++ java java-native-interface stl

1
推荐指数
1
解决办法
1692
查看次数

标签 统计

c++ ×1

java ×1

java-native-interface ×1

stl ×1