Вы изменяете структуру, но не так, как предполагали.
Класс Structure
JNA сопоставляет свои поля Java с соответствующими смещениями в собственной памяти для эквивалента C struct
.
В этом случае, как вы определили структуру, вы пытаетесь записать поле Sorter
, поле short
(2-байтовое) со смещением 51 байт от начала структура.
Однако это может быть не там, где Sorter
находится на собственной стороне. Я не уверен, откуда взялся ваш 39
, но нативный код, который я вижу в Интернете, имеет:
char CodelineRead[CODE_LINE_LENGTH]; // Codeline returned
С определенным значением:
#define CODE_LINE_LENGTH 256 // Max length of returned codeline
Итак, запись в байтах 51 -52 не работает, поскольку вы пишете в середине массива CodeLineRead
на собственной стороне.