【发布时间】:2015-12-14 11:24:35
【问题描述】:
我想将一个结构从 java 传递到 C 代码,并使用 JNI 将一个结构从 C 返回到 Java 代码。我没有在网上找到有关结构和 JNI 的有用信息。
有人可以提供一个简单的代码sn-p吗?
【问题讨论】:
标签: java java-native-interface
我想将一个结构从 java 传递到 C 代码,并使用 JNI 将一个结构从 C 返回到 Java 代码。我没有在网上找到有关结构和 JNI 的有用信息。
有人可以提供一个简单的代码sn-p吗?
【问题讨论】:
标签: java java-native-interface
这是一个非常广泛的领域,你需要在网上做更多的研究(那里已经涵盖了)。但是,简要...
如果您只是想保留一个数据块并在 Java 方法之间传递而不更改它,您可以将其存储在 Java 字节数组中。
您还可以 malloc() C 端的结构,然后向 Java 传递一个指针(理想情况下存储在字节数组中,原因我不会;不介绍)。同样,Java 不能处理数据,但至少可以传递对它的引用。
如果您确实需要双方都可以通过字段访问和更改的数据结构,那么您需要创建在两者之间转换的包装函数(C 结构和 Java 类)。一种实现自动化的方法是使用 SWIG ,它是一个代码生成器,可以从 C 包含文件为您生成 JNI 包装器代码。
【讨论】: