CALLCONV 列舉

定義

識別 METHODDATA 結構中所述方法使用的呼叫慣例。

public enum class CALLCONV
public enum CALLCONV
[System.Serializable]
public enum CALLCONV
type CALLCONV = 
[<System.Serializable>]
type CALLCONV = 
Public Enum CALLCONV
繼承
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

適用於

另請參閱