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 函数的标准调用约定。 这是使用平台调用调用非托管函数的默认约定。 调用方 (从右到左) 顺序反向将参数推送到堆栈上,调用的函数在返回之前清理堆栈。
CC_SYSCALL类似于 CDECL,参数从右到左推送。 不会保留 EAX、ECX 和 EDX 寄存器。
这些调用约定标识符由 .NET Framework、Windows Embedded CE 平台和自动化使用。
当本机代码中的 COM 方法返回 HRESULT 时,公共语言运行时会引发异常。 有关更多信息,请参见 How to: Map HRESULTs and Exceptions。