x264.dll の JNA ラッパーを作成するのに忙しくしています。x264_param_t には次のクラスがあります。
ただし、そのように 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 に必要なサイズを見つけることができません。ポインタはありますか?
編集:他のすべてのネストされた構造体 (analyse および rc ) も初期化されていないようです。なぜだろう?