您好我试图在项目中使用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)
答案 0 :(得分:1)
刚读完它但我已经发现了我的错误,问题是当你切换工作区时,日食改变了它的安装JRE。
所以在我的testprogramm中,我开发了我的64位库。但不是在实际项目中,安装的JRE是另一个。
所以如果有人遇到同样的问题,请不要忘记检查
答案 1 :(得分:0)
请检查您的系统路径。 Windows将尝试加载它找到的与DLL名称匹配的第一个DLL。 Windows不会检查DLL是32位还是64位,它会尝试加载它。
如果您构建了一个32位DLL,那么您有责任确保任何相关DLL也是32位,并且Windows会找到这些32位DLL的第一个。