CALLCONV 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
識別 METHODDATA 結構中所述方法使用的呼叫慣例。
public enum class CALLCONV
public enum CALLCONV
[System.Serializable]
public enum CALLCONV
type CALLCONV =
[<System.Serializable>]
type CALLCONV =
Public Enum CALLCONV
- 繼承
- 屬性
欄位
CC_CDECL | 1 | 表示在方法中使用 C 宣告 (CDECL) 呼叫慣例。 |
CC_MACPASCAL | 3 | 表示在方法中使用 Macintosh Pascal (MACPASCAL) 呼叫慣例。 |
CC_MAX | 9 | 表示 CALLCONV 列舉的結尾。 |
CC_MPWCDECL | 7 | 表示在方法中使用 Macintosh Programmers' Workbench (MPW) CDECL 呼叫慣例。 |
CC_MPWPASCAL | 8 | 表示在方法中使用 Macintosh Programmers' Workbench (MPW) PASCAL 呼叫慣例。 |
CC_MSCPASCAL | 2 | 表示在方法中使用 MSC Pascal (MSCPASCAL) 呼叫慣例。 |
CC_PASCAL | 2 | 表示在方法中使用 Pascal 呼叫慣例。 |
CC_RESERVED | 5 | 這個值已保留供未來使用 |
CC_STDCALL | 4 | 表示在方法中使用標準呼叫慣例 (STDCALL)。 |
CC_SYSCALL | 6 | 表示在方法中使用標準 SYSCALL 呼叫慣例。 |
備註
這個類別中的呼叫慣例描述函式如何傳遞自變數和傳回值。 他們會指定所呼叫函式的參數設定順序,其中參數會儲存 (在緩存器或記憶體) 中,以及 (呼叫端或呼叫函式) 負責在函式傳回之後清除堆疊。 例如:
CC_CDECL會使用 C 語言的命名和呼叫慣例。 呼叫端會反向將參數推送至堆疊, (由右至左) 順序,並在函式傳回之後清除堆疊。 此呼叫慣例可讓您使用 呼叫函
varargs
式,使其適合用於接受可變數目參數的方法,例如 C 運行時間函式 printf、_printf_l、wprintf、_wprintf_l。CC_PASCAL使用Pascal呼叫慣例。 呼叫端會以由左至右的順序將參數推送至堆疊。 呼叫的函式會在傳回之前清除堆疊。
CC_STDCALL是 Win32 函式的標準呼叫慣例。 這是使用平台調用呼叫 Unmanaged 函式的預設慣例。 呼叫端會反向將參數推送至堆疊, (由右至左) 順序,而呼叫的函式會在傳回之前清除堆疊。
CC_SYSCALL類似於 CDECL,該自變數會從右至左推入。 EAX、ECX 和 EDX 快取器不會保留。
.NET Framework、Windows Embedded CE 平臺和自動化會使用這些呼叫慣例標識符。
Common Language Runtime 會在機器碼中的 COM 方法傳回 HRESULT 時擲回例外狀況。 如需詳細資訊,請參閱 How to: Map HRESULTs and Exceptions。