我用vc6.0写了一个dll,在java里通过jni来调用,在我的机器上能正常调用,在别人的机器上出错,java.lang.UnsatisfiedLinkError: c:\test.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
请问这是什么原因啊,跟操作系统有关?
谢谢

解决方案 »

  1.   

    http://bbs.51cto.com/topic/thread-467156.html
      

  2.   

    报错是误导,在eclipse目录下需要放入另一个厂家提供的dll文件,不只是放在工程目录下
    eclipse的报错产生很大的误导
      

  3.   

    我不是用的eclipse,用的jbuilder,我自己机器上没事
      

  4.   

    一种可能是你的test.dll依赖其他的dll比如叫A.dll,你的机器上有A.dll但是别人机器上却没有。
      

  5.   


    很可能是这样,如何能知道别人少哪些dll呢
      

  6.   

    VC自带一个检查dll依赖的工具Dependency Walker,应该是在Microsoft Visual Studio\Common\Tools下,没有的话去下一个就好了。
    然后看一下test.dll依赖于什么dll,然后拷到别人电脑下就好了。
      

  7.   

    答:这是JAVA程序运行时loadLibrary装载test.dll时,WINDOWS找不到test.dll库引起的.确保WINDOWS能找到该dll.比如:将test.dll拷贝到WIN系统目录中,等等