簡體   English   中英

JNA 數組結構指針

[英]JNA Array Structure Pointer

我使用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");
   }
}

大批:

HCNetSDK.NET_DVR_VIDEOWALLWINDOWPOSITION[] net_dvr_videowallwindowpositions =
                (HCNetSDK.NET_DVR_VIDEOWALLWINDOWPOSITION[]) new  HCNetSDK.NET_DVR_VIDEOWALLWINDOWPOSITION().toArray(windows.size());

我需要把net_dvr_videowallwindowpositions放到pBuf

我能做什么?

JNA 的Structure類有一個getPointer()方法,該方法返回指向您需要的結構的指針。 由於您有一個結構數組,您需要指向第一個元素的指針,索引 0:

NET_DVR_BUF_INFO bufInfo = new NET_DVR_BUF_INFO();
bufInfo.pBuf = net_dvr_videowallwindowpositions[0].getPointer();

由於您使用 Structure 的toArray()方法定義了數組,因此數組的其他元素將位於本機端預期的連續內存中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM