Как использовать unsigned int, чтобы иметь возможность использовать функцию для JNA (Java Native Interface)? - PullRequest
1 голос
/ 12 апреля 2011

Я использую JNA для использования библиотеки C ++ в моем приложении Java. Я использую интерфейс в Java, чтобы использовать эти функции. Функция использует три аргумента в C ++: беззнаковое int, const char * и long *. JNA реализует Strings (согласно их документам) в 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);

1 Ответ

0 голосов
/ 12 апреля 2011

Использовать JNA IntByReference .

...