Я был занят созданием оболочки JNA вокруг x264.dll. У меня есть следующий класс для моего x264_param_t:
http://pastebin.com/Mh4JkVpP
Однако, когда я пытаюсь инициализировать свой x264_param_t следующим образом
x264_param_t param_t = new x264_param_t;
Я получаю следующую ошибку:
Exception in thread "main" java.lang.IllegalArgumentException: Can't determine size of nested structure: Can't instantiate class anotherReversed.x264_param_t$Vui (java.lang.InstantiationException: anotherReversed.x264_param_t$Vui)
at com.sun.jna.Structure.calculateSize(Structure.java:790)
at com.sun.jna.Structure.allocateMemory(Structure.java:287)
at com.sun.jna.Structure.<init>(Structure.java:177)
at com.sun.jna.Structure.<init>(Structure.java:167)
at com.sun.jna.Structure.<init>(Structure.java:163)
at com.sun.jna.Structure.<init>(Structure.java:154)
at anotherReversed.x264_param_t.<init>(x264_param_t.java:7)
Если я закомментирую Vui в его конструкторе родительского класса, экземпляр будет в порядке. Интересно, что отличается именно от этой вложенной структуры, так как есть еще 2 (а именно Rc и Analyze), которые вложены одинаково Тем не менее, почему-то JNA не может найти требуемый размер для Vui. Есть указатели?
Edit:
Кажется, что все другие вложенные структуры (анализ и rc) также не были инициализированы. Интересно почему?