CALLCONV Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Identifica a convenção de chamada usada por um método descrito numa estrutura METHODDATA .
public enum class CALLCONV
public enum CALLCONV
[System.Serializable]
public enum CALLCONV
type CALLCONV =
[<System.Serializable>]
type CALLCONV =
Public Enum CALLCONV
- Herança
- Atributos
Campos
| Name | Valor | Description |
|---|---|---|
| CC_CDECL | 1 | Indica que a convenção de chamada de declaração C (CDECL) é usada para um método. |
| CC_MSCPASCAL | 2 | Indica que a convenção de chamada MSC Pascal (MSCPASCAL) é usada para um método. |
| CC_PASCAL | 2 | Indica que a convenção de chamada Pascal é usada para um método. |
| CC_MACPASCAL | 3 | Indica que a convenção de chamada Macintosh Pascal (MACPASCAL) é usada para um método. |
| CC_STDCALL | 4 | Indica que a convenção padrão de chamada (STDCALL) é usada para um método. |
| CC_RESERVED | 5 | Este valor está reservado para utilização futura. |
| CC_SYSCALL | 6 | Indica que a convenção padrão de chamada SYSCALL é usada para um método. |
| CC_MPWCDECL | 7 | Indica que a convenção de chamadas CDECL do Macintosh Programmers' Workbench (MPW) é usada para um método. |
| CC_MPWPASCAL | 8 | Indica que a convenção de chamada PASCAL do Macintosh Programmers' Workbench (MPW) é usada para um método. |
| CC_MAX | 9 | Indica o fim da CALLCONV enumeração. |
Observações
As convenções de chamada nesta classe descrevem como as funções passam argumentos e retornam valores. Especificam a ordem em que os parâmetros são configurados para as funções chamadas, onde os parâmetros são armazenados (em registos ou na memória) e quem (chamador ou função chamada) é responsável por limpar a pilha após o retorno da função. Por exemplo:
CC_CDECL utiliza as convenções de nomeação e chamada da linguagem C. O chamador empurra os parâmetros para a pilha em ordem inversa (da direita para a esquerda) e limpa a pilha após o regresso da função. Esta convenção de chamada permite chamar funções com
varargs, o que a torna adequada para uso com métodos que aceitam um número variável de parâmetros, como as funções de execução C printf, _printf_l, wprintf, _wprintf_l.CC_PASCAL utiliza a convenção de chamada Pascal. O chamador empurra os parâmetros para a pilha em ordem da esquerda para a direita. A função chamada limpa a pilha antes de regressar.
CC_STDCALL é a convenção padrão de chamadas para funções Win32. É a convenção padrão para chamar funções não geridas com platform invoke. O chamador empurra os parâmetros para a pilha em ordem inversa (da direita para a esquerda), e a função chamada limpa a pilha antes de regressar.
CC_SYSCALL é semelhante ao CDECL no sentido em que os argumentos são empurrados da direita para a esquerda. Os registos EAX, ECX e EDX não estão preservados.
Estes identificadores de convenção de chamada são usados pelo .NET Framework, pela plataforma Windows Embedded CE e pela Automação.
O runtime da linguagem comum lança uma exceção quando um método COM em código nativo devolve um HRESULT. Para mais informações, veja Como: Mapear HRESULTs e Exceções.