别的公司给我一套商业插件,有三个文件,DLL,OCX,H
我想用JAVA调用DLL,可regsvr32只能对OCX注册,不能注册DLL,(DLL是用VC写的)
从网上找来不少DEMO,加载DLL时用System.loadLibrary("string");这个方法,这个参数是调用的什么??也不加扩展名???
我将IbSignData.dll放在SYSTEM32下,环境变量也改过,jdk\jre\bin下也放了,都报错
当loadLibrary("IbSignData.dll");时
java.lang.UnsatisfiedLinkError: no IbSignData.dll in java.library.path当loadLibrary("IbSignData");时
Exception in thread "main" java.lang.UnsatisfiedLinkError: UsbKeyVerifySign以下是我的代码:
public class Demo {
    static {
        System.loadLibrary("IbSignData.dll");
    }    public static void main(String[] args) {
        Demo demo = new Demo();        long a = demo.UsbKeyVerifySign("111","222","333");
        System.out.println("aaa="+a);
    }    public native long UsbKeyVerifySign(String ca, String str,String code) ;
}如果有人能帮我解决这个问题,单开贴给其100分
能QQ或MSN单独给我讲讲更好,我把插件给你穿过去,谢谢了,太着急了,快帮帮我吧,搞好几天了,一点没进展

解决方案 »

  1.   

    是这样的,调用你要调的动态库
        static {
            System.loadLibrary("IbSignData");
        }
    这样就可以了。只不过你现在的问题是要掉的那个方法在动态库中不存在。
      

  2.   

    看到后可以发邮件给我。[email protected]
      

  3.   

    问一下啊,你是不是把Demo类编译了以后直接包含到你的工程的lib里面以后通过JNI来调用的啊,
      

  4.   

    lelewang() ( ) 信誉:100    Blog  2007-03-19 14:53:06  得分: 0  
     
       是这样的,调用你要调的动态库
        static {
            System.loadLibrary("IbSignData");
        }
    这样就可以了。只不过你现在的问题是要掉的那个方法在动态库中不存在。
     ======================================
    如何配置这个DLL的位置啊?
     
      

  5.   

    craig_wolfdon() ( ) 信誉:100    Blog  2007-03-19 15:04:28  得分: 0  
     
     
       问一下啊,你是不是把Demo类编译了以后直接包含到你的工程的lib里面以后通过JNI来调用的啊,
      
     
    ===============================
    我是用JBuilder在工程中建立DEMO的,不是手工编译
      

  6.   

    1.dll应当位于你的classpath中。