JNA:如何访问结构体结构体数组

如题所述

////// C++  
// student 结构体定义  
typedef struct    
{  
    int age;  
    char name[20];  
}Student;  
  
// 修改java对象的属性值  
JNAAPI bool changeObjs(Student stu[],int size)  
{  
    for(int i=0;i<size;i++)  
    {  
        stu[i].age*=10;  
        strcpy(stu[i].name,"wokettas");  
    }  
    return true;  
}  
  
/////// Java  
// JNA调用方法  
Student student=new Student();  
Student[] stus=(Student[]) student.toArray(2); //分配大小为2的结构体数组  
stus[0].age=1;  
stus[0].name=Arrays.copyOf("k1".getBytes(), 20);  
stus[1].age=2;  
stus[1].name=Arrays.copyOf("k2".getBytes(),20);  
Gui.gui.changeObjs(stus, stus.length);

温馨提示:答案为网友推荐,仅供参考
相似回答