JNI调用c ++ dll发生'UnsatisfiedLinkError:对内存位置的无效访问'

时间:2012-12-12 09:26:11

标签: c++ dll java-native-interface

我想在我的java项目中使用JNI调用我的C ++ dll。但是有一个奇怪的错误:'UnsatisfiedLinkError:对内存位置的无效访问'。我的环境是:Windows xp sp3,jdk 1.7.0_01(和jdk 1.6.23),vistual studio 2010.但是我在win7(64位)(使用相同的项目和相同的jdk& vs2010)中做到这一点没有错误。 我使用dependcy walker来检查dll并且没有依赖性错误。所以我很困惑。我该怎么办?

1 个答案:

答案 0 :(得分:1)

我猜你试图在两种环境中使用相同的DLL?如果是这种情况,则必须将DLL编译为32位DLL,并且必须在Win7-64上使用32位JVM。您可能希望考虑运送您的Java应用程序的32位和64位版本并动态加载相应的库。如果您确定没有32/64位冲突,请提供有关失败的内容和方式的更多信息。