Java 数组结构指针

Java 数组结构指针,java,structure,jna,Java,Structure,Jna,我使用java调用.dll,现在我有了一个结构,其中有一个指针变量“pBuf”。我需要将数组转换为指针,并将其存储在这个指针变量中 结构: public static class NET_DVR_BUF_INFO extends Structure { public Pointer pBuf; public int nLen; @Override protected List<String> getFieldOrder() { return Arr

我使用java调用.dll,现在我有了一个结构,其中有一个指针变量“pBuf”。我需要将数组转换为指针,并将其存储在这个指针变量中

结构:

public static class NET_DVR_BUF_INFO extends Structure {
   public Pointer pBuf;
   public int nLen;
   @Override
   protected List<String> getFieldOrder() {
      return Arrays.asList("pBuf", "nLen");
   }
}
我需要将
net\u dvr\u videowall窗口位置
放入
pBuf

我能做什么?

JNA的类有一个
getPointer()
方法,该方法返回指向所需结构的指针。由于您有一个结构数组,因此需要指向第一个元素索引0的指针:

NET_DVR_BUF_INFO bufInfo = new NET_DVR_BUF_INFO();
bufInfo.pBuf = net_dvr_videowallwindowpositions[0].getPointer();
由于使用结构的
toArray()
方法定义了数组,因此数组的其他元素将位于本机端预期的连续内存中。

JNA的类有一个
getPointer()
方法,该方法返回指向所需结构的指针。由于您有一个结构数组,因此需要指向第一个元素索引0的指针:

NET_DVR_BUF_INFO bufInfo = new NET_DVR_BUF_INFO();
bufInfo.pBuf = net_dvr_videowallwindowpositions[0].getPointer();
由于使用结构的
toArray()
方法定义了数组,因此数组的其他元素将位于本机端预期的连续内存中