2012-03-01 528 views
1

test.hJNA指针传递

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"); 
} 
+0

这不是使用JNA的正确方法......您希望JNA绑定到的.DLL(Windows)或.so(Linux)库名称是什么? – ecle 2012-03-01 22:19:23

+0

当我使用此语句创建对象测试ob =新测试(“AIR GAS”)它会引发错误,因为在这里我传递Java字符串和JNA函数接受指针参数。我想知道如何传递指针参数。 – prasun 2012-03-02 10:24:02

+0

'char * pCarrierName'可以表示为'char [] pCarrierName''。因此,在JNA中,您只需输入'public char [] pCarrierName' – ecle 2012-03-02 11:15:04

回答

0

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