首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

J/Direct 核心機制:最簡單的 Win32 DLL 函數調用方式與自動參數封送

     編輯:Java 相關知識

J/Direct 設計目標與優缺點

J/Direct 是調用 Win32 DLL 函數最簡單方式,主要針對 Win32 API 但可調用任何 API。雖方便但有限制、效能較 RNI 低。優點:
1. 除目標 DLL 代碼外無需編寫額外非 Java 代碼(無封裝器/代理存根 DLL)
2. 函數參數與標準資料類型自動轉換(傳遞自定義類型可能不如預期)
3. 極簡單直接,少數幾行代碼即可調用 MessageBox() 彈出模態視窗

核心代碼範例解析

關鍵在 @dll.import("USER32") 導向命令(看似註釋實非註釋),告訴編譯器下方函數在 USER32 DLL 實現。只需提供符合 DLL 內實現函數的原型並調用。函數必須「按名稱」由 DLL 導出,也可用 @dll.import「按序數」連結(指定 DLL 入口位置)。

自動參數配置與版本需求

Java 宣告採用兩字串參數,原 C 方案用兩字元指標,編譯器自動轉換標準資料類型。main() 宣告 UnsatisfiedLinkError 異常:執行期連結器無法從非 Java 函數解析符號時觸發(DLL 未找到、無效 DLL、JVM 不支援 J/Direct)。DLL 必須位於 Windows/Windows\System、PATH 環境變量目錄或 .class 同目錄。J/Direct 支援 Microsoft Java 編譯器 1.02.4213+、Microsoft JVM 4.79.2164+。查看版本:命令行執行 JVC 看編譯器版本;msjava.dll 屬性看 JVM 版本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved