请教一个jna的问题,动态库函数中参数为结构体指针,结构体中有数据类型unsigned int,在java中我使用int接收,当这个属性的值超过int最大值时,结构体中这个属性值就溢出了,没有超过int最大值时,结构体中数据正常接收,该为long类型后,结构体中数据错乱了,连带其它属性值也都不对了,请问这个问题怎么解决?一直困扰在这里,望协助,谢谢啦
你可以用int接收,但是加上一个转换
long unsignedToLong(int x) {
if (x < 0) {
long unsignedValue = x & 0xFFFFFFFFL;
return unsignedValue;
} else {
return x;
}
}