java使用JNI调用DLL动态库错误

来源:互联网 发布:阿里云对象存储价格 编辑:程序博客网 时间:2024/05/23 18:54

一、错误:java.lang.UnsatisfiedLinkError: C:\windows\system32\cardcall.dll: Can't find dependent libraries

错误原因:cardcall.dll找不到依赖库

解决方案一:在网上找一个“DLL依赖查看工具”--->使用它找出缺少的依赖库--->下载dll--->下载的dll放入system32目录下--->OK。

解决方案二:java使用C++得DLL,DLL是使用VS2010编译,在本机上测试通过,但测试人员测试时报java.lang.UnsatisfiedLinkError Can't find dependent libraries,这里说明,库得路径都是对得,不必纠缠与找不到库路径。测试同事装了VS2010后问题消失。
在没装VS的虚拟机上重现问题,解决方法是VS2010编译C++的DLL时去掉/MD选项:
修改DLL工程属性:
property:
Configuration: Active(Release) Platform Active(x64)
C/C++ -> Code Generation -> Runtime Library
将 Multi-threaded DLL (/MD)去掉,留空白
重新编译DLL,不用装VS2010测试通过。

0 0
原创粉丝点击