我想在我的 java 项目中使用 JNI 调用我的 C++ dll。但是有一个奇怪的错误:'UnsatisfiedLinkError: Invalid access to memory location'。我的环境是:Windows xp sp3、jdk 1.7.0_01(和 jdk 1.6.23)、vistual studio 2010。但我在 win7(64 位)(使用相同的项目和相同的 jdk 和 vs2010)中进行操作,没有错误. 我用dependcy walker检查了dll,没有依赖错误。所以我很疑惑。我该怎么办?
最佳答案
我猜您正试图在两种环境中使用相同的 DLL?如果是这种情况,您的 DLL 必须编译为 32 位 DLL,并且您必须在 Win7-64 上使用 32 位 JVM。您可能希望考虑发布 32 位和 64 位版本的 Java 应用程序并动态加载适当的库。如果您确定没有 32/64 位冲突,请提供有关失败原因和失败原因的更多信息。
关于c++ - JNI 调用 c++ dll 发生 'UnsatisfiedLinkError: Invalid access to memory location',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13836576/