[Java] 關於Java調用dll的方法

Java语言本身具有跨平台性,如果通過Java調用DLL的技术方便易用,使用Java開發前台界面可以更快速,也能帶来跨平台性。

    Java調用C/C++寫好的DLL庫時,由於基本數據類型不同、使用字節序列可能有差異,所以在參數傳遞過程中容易出現問題。

    使用Java調用DLL動態鏈接庫的方案通常有三種︰JNI, Jawin, Jacob.




 其中JNI(Java Native Interface)Java語言本身提供的調用本地已編譯的函數庫的方法,本身具有跨平台性,可以在不同的機器上調用不同的本地庫。JawinJacob都是sourceforge.net的开源项目,都是基于JNI技术的依赖Windows的实现,使得在Windows平台下使用COMDLL的更加方便。

一、JNI

Read More

[Java] 利用jawin完成調用window中dll的調用[轉載]

由於項目的特殊需求,我們必須在程式調用window的dll。
開始我們用jni,後來由於調用的dll太多,而且很煩瑣。所以,我們決定用開源的jawin調用。
jawin 可以對dll中的方法進行調用,也可以調用com中的方法.內部還提供了一個工具,直接對 com組件匯出成 java的類,個人認為很方便。

Read More

[C/C++] 載入DLL中的副程式[轉貼]

 每個dll可以包含資源或者是程式 今天就介紹如何載入dll檔提供的副程式
首先 先介紹如何開啟dll檔


 範例如下

typedef HDC (*GETDC_PROTO)(HWND);
GETDC_PROTO GetDC = (GETDC_PROTO)GetProcAddress(hMod,”GetDC”);
// 以上載入GetDC副程式 載入成功後以下便可以使用
HDC dc = GetDC(NULL);

我們可以判斷 hMod 的值 如果不為NULL 則代表成功開啟
開啟之後 我們便可以載入程式了 本次示範載入GetDC()

Read More