6

如何将下面的函数映射到java?

VOID WriteToStruct(BOOL *Status, STRUCT_MSG RecBuff)

此函数
的作用:1) 填充结构 RecBuff
2) 更新状态

如何映射到 Java 中的布尔指针并访问函数更新的结构数据?

4

2 回答 2

7

我正在寻找另一个关于 JNA 和结构的问题,谷歌将我重定向到这里。我希望这有帮助。

来自JNA API

要按值传递结构,首先定义结构,然后从实现 Structure.ByValue 的类中定义一个空类。使用 ByValue 类作为参数或返回类型。

// Original C code
typedef struct _Point {
  int x, y;
} Point;

Point translate(Point pt, int dx, int dy);

// Equivalent JNA mapping
class Point extends Structure {
    public static class ByValue extends Point implements Structure.ByValue { }
    public int x, y;
}
Point.ByValue translate(Point.ByValue pt, int x, int y);
...
Point.ByValue pt = new Point.ByValue();
Point result = translate(pt, 100, 100);
于 2009-02-10T23:12:15.423 回答
1

您可以使用 ByReference 类通过引用传递值。假设 BOOL 是一个 int,您可以使用 IntegerByReference。

于 2009-06-15T08:19:39.863 回答