2015-03-10 4 views
0

Я пытаюсь создать единый объект-указатель, используя библиотеку JNA, и установить его «указывать» на объект определенного пользовательского типа данных.Класс JNA Pointer: Как установить объект указателя на другой класс?

Может кто-нибудь объяснить, как это сделать?

CustomType ctype = new CustomType(); 
Pointer pointer = new Pointer(ctype); 

Это не работает. Я пробовал поиск и поиск в Интернете, но ни один из вопросов, которые я нашел, не показал, что мне нужно.

+0

Как вы ожидаете, что ваш родной код будет использовать указатель, который вы указали ему? – technomage

+0

Он должен написать что-то в пользовательский тип данных. Набор чисел, которые можно перевести в коды статуса. – user3779674

+0

Это может быть ответом на мой собственный вопрос, но, похоже, я должен определить пользовательский тип данных как структуру подзадачи. – user3779674

ответ

-1

Хорошо, так как я указал в комментарии, было принято решение сделать пользовательский тип данных подклассом структуры JNA, который имеет метод getPointer().

1

Используйте подкласс com.sun.jna.Structure и передайте этот объект непосредственно на ваш отображаемый метод. JNA автоматически позаботится о синхронизации собственных данных и передает указатель на эти данные на нативный метод.

Обратитесь к документации JNA по телефонам how to use Structures и the FAQ.

+0

Я пытаюсь, но почему-то не могу создать объект этого нового класса. Я задал здесь отдельный вопрос, если у вас есть мысли: http://stackoverflow.com/questions/29010272/jna-cant-create-object-of-structure-subclass-invalid-structure-field – user3779674

Смежные вопросы