java中如何調用DLL方法

來源:互聯網
上載者:User

前段時間項目需要使用調用DLL來控制POS機外設,如錢箱和小票印表機、顧客顯示屏等,於是,我便開始了java調用DLL中的方法的探索,事實上,網上的例子還是很多的,一些外部包的例子也有很多,但每個人的實際情況都有所不同,儘管只是一個很簡單的調用,也花了我不少時間,在這裡分享一下我的經驗吧。

我是通過一個外部的JAR包來間接來獲得DLL檔案的控制代碼 的,它就是jacob了,這是java com brige的簡寫,呵呵, 這個名稱起得非常形象吧,我用的版本是jacob 1.9的,你可以到它的官方網站去下載,下載回來的壓縮包中會有兩個檔案我們需要用到的,一個是jacob.dll,一個是jacob.jar,jacob.dll可以將它複製到系統的system32目錄下,而jacob.jar檔案,直接將它加入到項目的庫中就可以了。這兩項準備工作完成後,就可以開始嘗試調用了。

建立一個類,引入jacob.jar中的兩個類,

import  com.jacob.activeX.ActiveXComponent;  import  com.jacob.com.Dispatch;

然後通過dll的ControllerId來讀取DLL檔案

public class Print {      private ActiveXComponent printController = null;      private Dispatch printObj = null;      /**      * 預設controllerId的方法      */    public Print(){          try{              printController = new ActiveXComponent("POSControler.Controler");              printObj = (Dispatch)printController.getObject();          }catch(Exception e){              printObj = new Dispatch();              //Common.alert(e.getMessage(),"讀取終端控制DLL失敗");          }      }  }

這樣就可以獲得DLL檔案的控制代碼了,那怎樣調用裡面的方法呢?

如果方法dll中的方法是空參數時,直接call一下就可以了,如

Dispatch.call(printObj,"setDefaultFont");

而調用有參數的方法時,則需要將參數在後面依次傳入,注意按順序噢:

Dispatch.call(printObj,"show",value,type);

查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/Java/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.