[英]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.