CALLCONV Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Identifica a convenção de chamada usada por um método descrito em uma estrutura de 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
CC_CDECL | 1 | Indica que a convenção de chamada CDECL (declaração C) é usada para um método. |
CC_MACPASCAL | 3 | Indica que a convenção de chamada MACPASCAL (Macintosh Pascal) é usada para um método. |
CC_MAX | 9 | Indica o fim da enumeração CALLCONV. |
CC_MPWCDECL | 7 | Indica que a convenção de chamada CDECL MPW (Workbench de programadores Macintosh) é usada para um método. |
CC_MPWPASCAL | 8 | Indica que a convenção de chamada PASCAL MPW (Workbench de programadores Macintosh) é usada para um método. |
CC_MSCPASCAL | 2 | Indica que a convenção de chamada MSCPASCAL (MSC Pascal) é usada para um método. |
CC_PASCAL | 2 | Indica que a convenção de chamada Pascal é usada para um método. |
CC_RESERVED | 5 | Este valor está reservado para uso futuro. |
CC_STDCALL | 4 | Indica que a convenção de chamada STDCALL (Padrão) é usada para um método. |
CC_SYSCALL | 6 | Indica que a convenção de chamada SYSCALL padrão é usada para um método. |
Comentários
As convenções de chamada nessa classe descrevem como as funções passam argumentos e valores retornados. Eles especificam a ordem na qual os parâmetros são configurados para as funções chamadas, em que os parâmetros são armazenados (em registros 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 usa as convenções de nomenclatura e chamada da linguagem C. O chamador envia os parâmetros por push para a pilha na ordem inversa (da direita para a esquerda) e limpa a pilha após o retorno da função. Essa convenção de chamada permite que você chame funções com
varargs
, o que o torna apropriado para uso com métodos que aceitam um número variável de parâmetros, como as funções de tempo de execução C printf, _printf_l, wprintf _wprintf_l.CC_PASCAL usa a convenção de chamada Pascal. O chamador envia os parâmetros para a pilha na ordem da esquerda para a direita. A função chamada limpa a pilha antes de retornar.
CC_STDCALL é a convenção de chamada padrão para funções Win32. É a convenção padrão para chamar funções não gerenciadas com invocação de plataforma. O chamador envia os parâmetros para a pilha na ordem inversa (da direita para a esquerda) e a função chamada limpa a pilha antes de retornar.
CC_SYSCALL é semelhante à CDECL, pois os argumentos são enviados da direita para a esquerda. Os registros EAX, ECX e EDX não são preservados.
Esses identificadores de convenção de chamada são usados pelo .NET Framework, pela plataforma Windows Embedded CE e pela Automação.
O Common Language Runtime gera uma exceção quando um método COM no código nativo retorna um HRESULT. Para obter mais informações, consulte Como mapear HRESULTs e exceções.