JNA、结构和数组

Raf*_*edo 5 java arrays struct jna

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

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

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

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

tec*_*age 2

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