我正在使用JNA和JNAerator与一个老化的JNAerator库集成,以便为我的盒子里的每个温度传感器创建MBeans。首先,我称这种方法为:
// C edition
const sensors_chip_name *sensors_get_detected_chips(int *nr);
// Java edition
sensors_chip_name sensors_get_detected_chips(IntByReference nr);。。效果很好。随后,我需要打电话给:
// C edition
int sensors_get_feature(sensors_chip_name name, int feature, double *result);
// Java edition
int sensors_get_feature(sensors_chip_name.ByValue name, int feature, DoubleByReference result);。。我所缺少的是如何将sensors_get_detected_chips的结果按值传递给sensors_get_feature的第一个参数。
发布于 2014-06-18 15:56:39
下面允许从基类初始化结构的ByValue版本。
public class sensors_chip_name extends Structure {
public class ByValue extends sensors_chip_name implements Structure.ByValue {
public ByValue(sensors_chip_name orig) {
this(orig.getPointer().share());
}
public ByValue(Pointer p) {
super(p);
}
public ByValue() { }
}
public sensors_chip_name() { }
public sensors_chip_name(Pointer p) {
super(p);
read();
}
}https://stackoverflow.com/questions/24288936
复制相似问题