首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Foo转换为Foo.ByValue?

将Foo转换为Foo.ByValue?
EN

Stack Overflow用户
提问于 2014-06-18 15:01:50
回答 1查看 65关注 0票数 0

我正在使用JNA和JNAerator与一个老化的JNAerator库集成,以便为我的盒子里的每个温度传感器创建MBeans。首先,我称这种方法为:

代码语言:javascript
复制
// C edition
const sensors_chip_name *sensors_get_detected_chips(int *nr);

// Java edition
sensors_chip_name sensors_get_detected_chips(IntByReference nr);

。。效果很好。随后,我需要打电话给:

代码语言:javascript
复制
// 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的第一个参数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-18 15:56:39

下面允许从基类初始化结构的ByValue版本。

代码语言:javascript
复制
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();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24288936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档