「#pragma pack(1)」設定を使用して、VisualStudio 2005 でコンパイルされた DLL を呼び出しています。そのため、高速データ アクセスのために、構造アラインメント (SA) はパディングなしです [1]。JVM は通常の構造のアラインメントでコンパイルされていると思います [2]。
だから私は私のオプションが何であるかを知りたいですか?dll(私はCodecontrolにいません)への呼び出しは、ラッパーdll(私はCodecontrolにいます)を通過しています。
- Wrapper から別の SA 設定で dll を呼び出すことはできますか? そのため、Java から呼び出される Wrapper-Dll は、通常の SA 設定を使用し、#pragma pack(1) が設定されてコンパイルされた dll を呼び出します。
- #pragma pack(1) セットで dll を呼び出すように JNI で設定することは可能ですか?
- JNAも使えます。そのような設定を行う可能性はありますか。
[1] #pragma pack 効果
[2] http://www.velocityreviews.com/forums/t128433-jni-with-1-byte-alignment-crashes-jvm.html