У меня есть эта встроенная функция, и я получаю нулевое значение в JNA, когда я подключаю устройство к моей системе. Я думаю, что у меня есть проблема в сопоставлении LPVOID с JNA, любая идея будет оценена.
CP210x_GetProductString( DWORD DeviceNum,LPVOID DeviceString,DWORD Options)
DeviceNum
- Индекс устройства, для которого требуется строка описания продукта, серийный номер или полный путь.
DeviceString
- Переменная типа CP210x_DEVICE_STRING
, возвращающая серийный номер с нулевым символом в конце, описание устройства или строку полного пути.
Options
- флаг, определяющий, содержит ли DeviceString
описание продукта, серийный номер или строку полного пути
код JNA:
public class Helloworld {
public interface CLibrary extends Library{
CLibrary INSTANCE = (CLibrary) Native.loadLibrary(
(Platform.isWindows() ? "CP210xManufacturing.dll" : "c"),
CLibrary.class);
int CP210x_GetProductString(int dn,String [] ds,int op);
}
public static void main(String[] args) {
int dn=0;
String dsc = new String[100];
if(CLibrary.INSTANCE.CP210x_GetProductString(dn, dsc,
CP210x.CP210x_RETURN_SERIAL_NUMBER) == CP210x.CP210x_SUCCESS){
{
for(int i=0;i<dsc.length;i++)
System.out.print(dsc[i]);
}
}
}
}