【问题标题】:JNA, Structures and ArraysJNA、结构和数组
【发布时间】:2012-03-13 20:19:37
【问题描述】:

我正在尝试创建我的类的数组(扩展 JNA 的结构)以将其传递给 DLL 函数。我有从数据库读取到 ArrayList 的值,现在我需要将它们放入数组中。首先,我尝试使用 ArrayList 的 toArray() 方法,但是当我调用本机函数时它返回以下异常:

java.lang.IllegalArgumentException: Structure array elements must use contiguous memory (bad backing address at Structure array index 1)

如果我只是设置一个与 ArrayList 大小相同的新数组,当我在我的类中设置结构的“字段”时,它会返回 NullPointerException。

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 请显示您用于转换为数组的代码:)
  • 这很简单。 MyClass myClass = new MyClass(); MyClass[] myArray = (MyClass[]) myClass.toArray(sizeOfArray);

标签: java arrays struct jna


【解决方案1】:

Structure.toArray() 为您提供一个连续分配的结构对象块。在从“值”的 ArrayList 初始化它之前创建这个结构数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多