程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> com.ms.win32包

com.ms.win32包

編輯:關於JAVA

Win32 API的體積相當龐大——包含了數以千計的函數、常數以及數據類型。當然,我們並不想將每個Win32 API函數都寫成對應Java形式。微軟考慮到了這個問題,發行了一個Java包,可通過J/Direct將Win32 API映射成Java類。這個包的名字叫作com.ms.win32。安裝Java SDK 2.0時,若在安裝選項中進行了相應的設置,這個包就會安裝到我們的類路徑中。這個包由大量Java類構成,它們完整再現了Win32 API的常數、數據類型以及函數。包容能力最大的三個類是User32.class,Kernel.class以及Gdi32.class。它們包含的是Win32 API的核心內容。為使用它們,只需在自己的Java代碼裡導入即可。前面的ShowMsgBox示例可用com.ms.win32改寫成下面這個樣子(這裡也考慮到了用更恰當的方式使用UnsatisfiedLinkError):
 

import com.ms.win32.*;

public class UseWin32Package {
  public static void main(String args[]) {
    try {
      User32.MessageBeep(
        winm.MB_ICONEXCLAMATION);
      User32.MessageBox(0,
        "Created by the MessageBox() Win32 func",
        "Thinking in Java",
        winm.MB_OKCANCEL |
        winm.MB_ICONEXCLAMATION);
    } catch(UnsatisfiedLinkError e) {
      System.out.println("Can’t link Win32 API");
      System.out.println(e);
    }
  }
}

Java包是在第一行導入的。現在,可在不進行其他聲明的前提下調用MessageBeep()和MessageBox()函數。在MessageBeep()裡,我們可看到包導入時也聲明了Win32常數。這些常數是在大量Java接口裡定義的,全部命名為winx(x代表欲使用之常數的首字母)。
寫作本書時,com.ms.win32包的開發仍未正式完成,但已可堪使用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved