JNI system.loadlibrary问题 - 使用C库的本机C ++ DLL

时间:2011-04-12 13:37:49

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

我有一个非常烦人的编译问题。

我正在尝试在VS2010中的C ++ DLL上执行System.loadlibrary,后者又使用在VS2008中编译的C DLL。

我得到的错误是: java.lang.UnsatisfiedLinkError:应用程序无法启动,因为 它的并排配置不正确

每当我的C ++ DLL尝试调用C DLL中的函数时,就会发生这种情况。两者都编译得很好,两者都在Java Applet可访问的文件夹中。

这可能以某种方式解决吗?您还需要更多信息吗?

2 个答案:

答案 0 :(得分:2)

您应该尝试在DLL上使用dependency walker。 从并排错误我假设缺少一个c运行时redist包或一个noredist包。 但是步行者应该告诉你这个 如果这没有帮助,您可以从Windows的事件日志中获取更多信息,因为在那里记录了并排错误,或者您需要使用sxstrace获取更多信息。

答案 1 :(得分:0)

您是否安装了VC2010和VC2008的运行时?

此外,您必须确保正确配置两个DLL的清单,以便可以加载使用的库的正确版本。

另请参阅:http://msdn.microsoft.com/en-us/library/ms235342.aspx