Я использую JNA, чтобы использовать библиотеку C++ в своем приложении Java. Я использую интерфейс на Java для использования этих функций. В C++ функция использует три аргумента: целое число без знака, константное значение char* и длинное значение*. JNA реализует строки (согласно их документам) в Java для передачи в char*. Точно так же он использует long[] для передачи long*. Однако я запутался в типе, который я должен передать для unsigned int. Передаваемый char* представляет имя файла, и независимо от того, какой тип я использую для первого аргумента, он, похоже, не распознает файл. Кроме того, последний тип long фактически возвращает значение после выполнения функции. Если я использую тип short или int для первого аргумента, это число кажется правильным, однако, если я использую тип long для первого аргумента, оно неверно. Кто-нибудь может помочь?
Например, вот что за фактическим прототипом на C++ следует то, что у меня сейчас есть в качестве прототипа интерфейса на Java:
int JrConnect(unsigned int id, const char* config_file, long* handle);
public int JrConnect(int[] id, String[] config_file, long[] handle);