「封送處理」是指將函數參數從原始二進制形式轉換為語言無關通用形式,再轉換為調用函數採用的二進制格式。範例中調用 MessageBox() 傳遞兩個字串,Java 字串二進制佈局與 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 導向命令)。詳細用法請參考產品文件。