我需要調用一個函數,像這樣的簽名:如何從指向該數組的指針(在JNA中)提取`struct *`數組?
size_t findDevices(devStruct_t **devs[]);
一些示例C代碼使用的功能是這樣的:
devStruct_t **arrOfPointers;
size_t size;
size = findDevices(&arrOfPointers);
for(size_t i = 0; i < size; i++) {
printf("devId:%d\n", arrOfPointers[i]->id);
}
我將如何複製使用JNA在Java上面的代碼?
我覺得JNA函數簽名應該是這樣的:
NativeLong findDevices(PointerByReference devs);
我能不崩潰運行此:
NativeLong size;
PointerByReference stdevs = new PointerByReference();
size = libstlink.stlink_probe_usb(stdevs);
但是,我不知道如何訪問結構。
然後問題應該是「如何取消引用PointerByReference」或類似的東西,我猜。 – Fildor
也許這可以幫助:http://www.eshayne.com/jnaex/index.html?example=7 – Fildor