JNA Struct和指针映射

时间:2009-01-30 02:46:56

标签: java jna

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

VOID WriteToStruct(BOOL *状态,STRUCT_MSG RecBuff)

这个功能的作用:
1)填充结构RecBuff
2)更新状态

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

2 个答案:

答案 0 :(得分:7)

我正在寻找有关JNA和结构的另一个问题,Google在这里重定向了我。我希望这会有所帮助。

来自JNA API

  

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

// 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);

答案 1 :(得分:1)

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