【问题标题】:passing structure from java to C code and vice versa using JNI [closed]使用JNI将结构从java传递到C代码,反之亦然[关闭]
【发布时间】:2015-12-14 11:24:35
【问题描述】:

我想将一个结构从 java 传递到 C 代码,并使用 JNI 将一个结构从 C 返回到 Java 代码。我没有在网上找到有关结构和 JNI 的有用信息。

有人可以提供一个简单的代码sn-p吗?

【问题讨论】:

标签: java java-native-interface


【解决方案1】:

这是一个非常广泛的领域,你需要在网上做更多的研究(那里已经涵盖了)。但是,简要...

如果您只是想保留一个数据块并在 Java 方法之间传递而不更改它,您可以将其存储在 Java 字节数组中。

您还可以 malloc() C 端的结构,然后向 Java 传递一个指针(理想情况下存储在字节数组中,原因我不会;不介绍)。同样,Java 不能处理数据,但至少可以传递对它的引用。

如果您确实需要双方都可以通过字段访问和更改的数据结构,那么您需要创建在两者之间转换的包装函数(C 结构和 Java 类)。一种实现自动化的方法是使用 SWIG ,它是一个代码生成器,可以从 C 包含文件为您生成 JNI 包装器代码。

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    相关资源
    最近更新 更多