生成32位dll JNI

时间:2014-12-30 11:49:09

标签: java visual-studio-2012 dll java-native-interface

您好我试图在项目中使用JNI生成的DLL。

我生成了64位dll,但我的项目说%1不是有效的win32应用程序

所以我决定生成一个新的DLL,但这次是32位。我更改了我的Visual Studio中的设置,就像我发现其他帖子,配置到Win32和目标机器到MachineX86。

这一切都运行正常,但是当我尝试用这个DLL启动项目时,我得到了同样的错误。我用Dependency Walker检查了DLL,发现DLL是32Bit,但是包含的DLL是64位。

所以你们是我最后的希望。你有什么想法 ?

注意:我无法更改为Linux atm。

Visual Studio 2012 java版“1.7.0_71” Java(TM)SE运行时环境(版本1.7.0_71-b14)

2 个答案:

答案 0 :(得分:1)

刚读完它但我已经发现了我的错误,问题是当你切换工作区时,日食改变了它的安装JRE。

所以在我的testprogramm中,我开发了我的64位库。但不是在实际项目中,安装的JRE是另一个。

所以如果有人遇到同样的问题,请不要忘记检查

答案 1 :(得分:0)

请检查您的系统路径。 Windows将尝试加载它找到的与DLL名称匹配的第一个DLL。 Windows不会检查DLL是32位还是64位,它会尝试加载它。

如果您构建了一个32位DLL,那么您有责任确保任何相关DLL也是32位,并且Windows会找到这些32位DLL的第一个