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

匯集(Marshaling)

編輯:關於JAVA

“匯集”(Marshaling)是指將一個函數自變量從它原始的二進制形式轉換成與語言無關的某種形式,再將這種通用形式轉換成適合調用函數采用的二進制格式。在前面的例子中,我們調用了MessageBox()函數,並向它傳遞了兩個字串。MessageBox()是個C函數,而且Java字串的二進制布局與C字串並不相同。但盡管如此,自變量仍獲得了正確的傳遞。這是由於在調用C代碼前,J/Direct已幫我們考慮到了將Java字串轉換成C字串的問題。這種情況適合所有標准的Java類型。下面這張表格總結了簡單數據類型的默認對應關系:

Java C

byte BYTE或CHAR
short SHORT或WORD
int INT,UINT,LONG,ULONG或DWORD
char TCHAR
long __int64
float Float
double Double
boolean BOOL
String LPCTSTR(只允許在OLE模式中作為返回值)
byte[] BYTE *
short[] WORD *
char[] TCHAR *
int[] DWORD *

這個列表還可繼續下去,但已很能說明問題了。大多數情況下,我們不必關心與簡單數據類型之間的轉換問題。但一旦必須傳遞用戶自定義類型的自變量,情況就立即變得不同了。例如,可能需要傳遞一個結構化的、用戶自定義的數據類型,或者需要把一個指針傳給原始內存區域。在這些情況下,有一些特殊的編譯引導命令標記一個Java類,使其能作為一個指針傳給結構(@dll.struct引導命令)。欲知使用這些關鍵字的細節,請參考產品文檔。

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