首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JNA从结构中获取Structure.ByReference?

如何使用JNA从结构中获取Structure.ByReference?
EN

Stack Overflow用户
提问于 2014-10-09 22:03:03
回答 1查看 2.3K关注 0票数 0

我的java代码中确实有一个结构对象。但是使用JNAerator生成的Jar需要Structure.ByReference作为数据类型。在jna或代码片段中是否有将Structure对象转换为Structure.ByReference对象的方法?

EN

回答 1

Stack Overflow用户

发布于 2014-10-10 23:36:21

通常,在传递参数时不需要显式指定Structure.ByReference。如果它是一个参数,您可以从签名中删除.ByReference,这样它就可以正常工作了。

如果它是结构中的一个字段,那么JNA将Structure解释为值,在这种情况下,您需要显式地提供.ByReference

这是一种方法。

代码语言:javascript
复制
class MyStructure extends Structure {
    class ByReference extends MyStructure implements Structure.ByReference {
        public ByReference() { }
        public Byreference(Pointer p) { super(p); read(); }
    }
    public MyStructure() { }
    public MyStructure(Pointer p) { super(p); read(); }
}

MyStructure s;
// ...
MyStructure.ByReference ref = new MyStructure.ByReference(s.getPointer());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26288659

复制
相关文章

相似问题

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