我需要调用一个函数,像这样的签名:如何从指向该数组的指针(在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