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