【发布时间】:2013-11-08 09:53:09
【问题描述】:
我正在使用“#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。
- 是否可以在 JNI 中进行设置以调用设置了#pragma pack(1) 的 dll?
- 我也可以使用 JNA。有没有可能做这样的设置。
[2]http://www.velocityreviews.com/forums/t128433-jni-with-1-byte-alignment-crashes-jvm.html
【问题讨论】:
-
如果描述VS2005 dll中结构的.h是pragma pack(1),只要你描述结构的.h也是,我看不出问题出在哪里。你能添加代码来说明这是一个 JVM/JNI 问题吗?
标签: java c++ java-native-interface jna