我的 java 代码中确实有一个 Structure 对象。但是使用 JNAerator 生成的 Jar 需要 Structure.ByReference 作为数据类型。 jna或代码片段中是否有任何方法可以将Structure对象转换为Structure.ByReference对象?
最佳答案
一般情况下,传递参数时不需要显式指定Structure.ByReference
。如果它是一个参数,您可以从签名中删除 .ByReference
,它就可以正常工作。
如果它是结构中的字段,则 JNA 将 Structure
解释为按值,在这种情况下,您需要提供 .ByReference
明确地。
这是一种方法。
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());
关于java - 如何使用 JNA 从结构中获取 Structure.ByReference?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26288659/