日期:2014-05-18  浏览次数:20676 次

急急急~~~~~~~~~JAVA调用DLL问题,能解决者单开100分,顶者有分
别的公司给我一套商业插件,有三个文件,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单独给我讲讲更好,我把插件给你穿过去,谢谢了,太着急了,快帮帮我吧,搞好几天了,一点没进展

------解决方案--------------------
使用JNI方法进行调用
------解决方案--------------------
朋友,我知道你错在哪里了。
------解决方案--------------------
问一下啊,你是不是把Demo类编译了以后直接包含到你的工程的lib里面以后通过JNI来调用的啊,
------解决方案--------------------
还是用Jbuilder吧
------解决方案--------------------
我也刚好有这个问题.关注!
顶~
------解决方案--------------------
1.dll应当位于你的classpath中。