java開發調用C語言的DLL

 

通過Java調用OCX控件或者DLL有以下幾種方法,使用JNI、JACOB、Jawin等技術完成接口調用;

1.JNI

最直接的方式,也是最麻煩的方式,需要自己完成所有的工作,不推薦。

2.Jawin

嘗試了一下,效果不錯,但相對來說,其編程風格更貼近Windows,離Java有點遠

3.Jacob

使用Jacob非常方便,Java編程風格,需要了解的知識比較少官方的解釋是Java COM Bridge,即java
com組件間的橋樑(進一步瞭解com/dcom: http://docs.huihoo.com/com/
com一般表現爲dllexe等二進制文件

下載地址:  http://sourceforge.net/projects/jacob-project/     JACOB。e

Jacob的使用方法(64位的jacob組件對應 64爲的OCX控件或者DLL文件

1、將jacob.jar導入到開發項目(開發項目爲需要引用的dll接口的項目)中,導入方法如下https://blog.csdn.net/zxz9900/article/details/99598807

2、將jacob-1.xx-x64.dll放到 C:\Windows\System32文件夾下(注意:該dll必須與jacob.jar版本一致);

3、註冊DLL文件,regsvr32 D:\Code\EncryptionLibrary64.dll

      如果註冊失敗,提示沒有入口的錯誤,請進行如下操作:

開始→所有程序→附件→右鍵點擊命令提示符(CMD)→以管理員身份運行。

在DOS窗口中輸入 regsvr32 msi.dll,提示成功,然後再執行 regsvr32 xx.dll

鍵盤操作win+r彈出運行框,輸入  regedit  查看註冊表;

注意:如果部分電腦不能註冊,或者註冊失敗,可手動進行如下操作,鍵盤操作win+r彈出運行框,輸入  regedit  查看註冊表,選中“計算機”根節點,選中“文件”菜單中的【導入】,導入dll的註冊文件(共兩個註冊文件,ProgId.regCLSID.reg),,導入完成後請查詢“EncryptionLibrary64.EncryptionLibraryCom”,並修改註冊文件中“InprocServer32”與“1.0.0.0”中“CodeBase”參數中“EncryptionLibrary64.dll”的相關路徑(修改爲dll文件在本地的路徑);

 

1.初始化 

ComThread.InitMTA(true);

ActiveXComponent com = new ActiveXComponent("組件的ProgID") ;

Dispatch disp = com.getObject();

2.調用控件裏面的方面

2.1調用無參的方法,並返回一個short值

Dispatch.call(disp, "Init").getShort();

2.2調用有一個參數的方法,並返回一個boolean值

Dispatch.call(disp,"Method",new Variant(args)).getBoolean();

調用多個參數依次類推,注意在傳遞參數前,將Java中的參數轉換成Variant。

Demo鏈接: //download.csdn.net/download/aa2397199142/12038233

發佈了59 篇原創文章 · 獲贊 28 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章