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

其他J/Direct特性

編輯:關於JAVA

通過@dll.import引導命令內的修改符(標記),還可用到J/Direct的另兩項特性。第一項是對OLE函數的簡化訪問,第二項是選擇API函數的ANSI及Unicode版本。

根據約定,所有OLE函數都會返回類型為HRESULT的一個值,它是由COM定義的一個結構化整數值。若在COM那一級編寫程序,並希望從一個OLE函數裡返回某些不同的東西,就必須將一個特殊的指針傳遞給它——該指針指向函數即將在其中填充數據的那個內存區域。但在Java中,我們沒有指針可用;此外,這種方法並不簡練。利用J/Direct,我們可在@dll.import引導命令裡使用ole修改符,從而方便地調用OLE函數。標記為ole函數的一個固有方法會從Java形式的方法簽名(通過它決定返回類型)自動轉換成COM形式的函數。

第二項特性是選擇ANSI或者Unicode字串控制方法。對字串進行控制的大多數Win32 API函數都提供了兩個版本。例如,假設我們觀察由USER32.DLL導出的符號,那麼不會找到一個MessageBox()函數,相反會看到MessageBoxA()和MessageBoxW()函數——分別是該函數的ANSI和Unicode版本。如果在@dll.import引導命令裡不規定想調用哪個版本,JVM就會試著自行判斷。但這一操作會在程序執行時花費較長的時間。所以,我們一般可用ansi,unicode或auto修改符硬性規定。

欲了解這些特性更詳細的情況,請參考微軟公司提供的技術文檔。

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