CALLCONV Перечисление

Определение

Определяет соглашение о вызовах, используемое методом, описанным в структуре METHODDATA.Identifies the calling convention used by a method described in a METHODDATA structure.

public enum class CALLCONV
public enum CALLCONV
[System.Serializable]
public enum CALLCONV
type CALLCONV = 
Public Enum CALLCONV
Наследование
CALLCONV
Атрибуты

Поля

CC_CDECL 1

Указывает на использование для метода соглашения о вызове языка C (CDECL).Indicates that the C declaration (CDECL) calling convention is used for a method.

CC_MACPASCAL 3

Указывает на использование для метода соглашения о вызове языка Macintosh Pascal (MACPASCAL).Indicates that the Macintosh Pascal (MACPASCAL) calling convention is used for a method.

CC_MAX 9

Указывает на конец перечисления CALLCONV.Indicates the end of the CALLCONV enumeration.

CC_MPWCDECL 7

Указывает на использование для метода соглашения о вызове Macintosh Programmers' Workbench (MPW) CDECL.Indicates that the Macintosh Programmers' Workbench (MPW) CDECL calling convention is used for a method.

CC_MPWPASCAL 8

Указывает на использование для метода соглашения о вызове Macintosh Programmers' Workbench (MPW) PASCAL.Indicates that the Macintosh Programmers' Workbench (MPW) PASCAL calling convention is used for a method.

CC_MSCPASCAL 2

Указывает на использование для метода соглашения о вызове языка MSC Pascal (MSCPASCAL).Indicates that the MSC Pascal (MSCPASCAL) calling convention is used for a method.

CC_PASCAL 2

Указывает на использование для метода соглашения о вызове языка Pascal.Indicates that the Pascal calling convention is used for a method.

CC_RESERVED 5

Это значение зарезервировано для использования в будущем.This value is reserved for future use.

CC_STDCALL 4

Указывает на использование для метода стандартного соглашения о вызове (STDCALL).Indicates that the standard calling convention (STDCALL) is used for a method.

CC_SYSCALL 6

Указывает на использование для метода стандартного соглашения о вызове SYSCALL.Indicates that the standard SYSCALL calling convention is used for a method.

Комментарии

Соглашения о вызовах в этом классе описывают, как функции передают аргументы и возвращаемые значения.The calling conventions in this class describe how functions pass arguments and return values. Они указывают порядок, в котором параметры настраиваются для вызываемых функций, где хранятся параметры (в регистрах или в памяти) и кто (вызывающая или вызываемая функция) отвечает за очистку стека после того, как функция возвращает значение.They specify the order in which parameters are set up for the called functions, where the parameters are stored (in registers or in memory), and who (caller or called function) is responsible for cleaning up the stack after the function returns. Например:For example:

  • CC_CDECL использует соглашения об именовании и вызове языка C.CC_CDECL uses the naming and calling conventions of the C language. Вызывающий объект помещает параметры в стек в обратную последовательность (справа налево) и очищает стек после возврата функции.The caller pushes the parameters onto the stack in reverse (right-to-left) order, and cleans the stack after the function returns. Это соглашение о вызовах позволяет вызывать функции с varargs, что делает его пригодным для использования с методами, принимающими переменное число параметров, таких как функции среды выполнения C printf, _printf_l, wprintf, _wprintf_l.This calling convention enables you to call functions with varargs, which makes it appropriate for use with methods that accept a variable number of parameters, such as the C run-time functions printf, _printf_l, wprintf, _wprintf_l.

  • CC_PASCAL использует соглашение о вызовах Pascal.CC_PASCAL uses the Pascal calling convention. Вызывающий объект помещает параметры в стек в порядке слева направо.The caller pushes the parameters onto the stack in left-to-right order. Вызываемая функция очищает стек перед возвратом.The called function cleans the stack before returning.

  • CC_STDCALL является стандартным соглашением о вызовах для функций Win32.CC_STDCALL is the standard calling convention for Win32 functions. Это соглашение по умолчанию для вызова неуправляемых функций с помощью вызова неуправляемого кода.It is the default convention for calling unmanaged functions with platform invoke. Вызывающий объект помещает параметры в стек в обратную (справа налево) порядке, а вызываемая функция очищает стек перед возвратом.The caller pushes the parameters onto the stack in reverse (right to left) order, and the called function cleans the stack before returning.

  • CC_SYSCALL похож на CDECL в том, что аргументы передаются справа налево.CC_SYSCALL is similar to CDECL in that arguments are pushed from right to left. Регистры EAX, ECX и EDX не сохраняются.The EAX, ECX, and EDX registers are not preserved.

Эти идентификаторы соглашений о вызовах используются .NET Framework.NET Framework, Windows Embedded CEWindows Embedded CE платформой и службой автоматизации.These calling convention identifiers are used by the .NET Framework.NET Framework, the Windows Embedded CEWindows Embedded CE platform, and by Automation.

Среда CLR создает исключение, когда COM-метод в машинном коде возвращает значение HRESULT.The common language runtime throws an exception when a COM method in native code returns an HRESULT. Для получения дополнительной информации см. How to: Map HRESULTs and Exceptions.For more information, see How to: Map HRESULTs and Exceptions.

Применяется к

Дополнительно