【问题标题】:JNA Pointer PassJNA 指针通行证
【发布时间】:2012-03-10 03:32:34
【问题描述】:

测试.h

struct test{

char  *pCarrierName;

}

而等效的 JNA 语法是-

public static class test extends Structure {

    public Pointer pCarrierName;    
      public test( Pointer pCarrierName) {

                super();     

                this.pCarrierName = pCarrierName;


            }
}

现在我如何实例化这个“测试”类?其实我想做这种类型的电话-

public static void main(String[]args){
       test ob = new test("AIR GAS");
}

【问题讨论】:

  • 这不是使用 JNA 的正确方法...您希望 JNA 绑定到的 .DLL (Windows) 或 .so (Linux) 库名称是什么?
  • 当我使用这个语句 test ob = new test("AIR GAS") 创建对象时,它会抛出错误,因为我在这里传递了 Java 字符串,而 JNA 函数接受指针参数。我想知道如何通过指针参数。
  • char* pCarrierName 可以表示为char[] pCarrierName。因此,在 JNA 中,您只需输入 public char[] pCarrierName

标签: java jna


【解决方案1】:

结构字段应该是字符串类型;然后您可以使用原始 String 参数初始化结构及其字段。

【讨论】:

    猜你喜欢
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多