Как я могу вызвать метод с сигнатурой этого метода в C из JNA?
int open_device(context *ctx, device **dev, int index);
Последние две строки метода C выглядят так:
*dev = pdev;
return 0;
Этотолько использование dev
в этом методе.Это означает, что я должен передать указатель на пустой указатель на метод, верно?Затем метод заполняет пустой указатель адресом объекта device
, и я могу передать указатель на устройство другим методам.
Мой вопрос: это правильный способ сделать это?Если это так, как мне выделить новый указатель из Java?
Основываясь на принятом ответе, я сделал это:
Memory p = new Memory(Pointer.SIZE);
Memory p2 = new Memory(Pointer.SIZE);
p.setPointer(0, p2);
nativeLib.open_device(ctx, p, index);
return p2;