CALLCONV Enumerazione

Definizione

Identifica la convenzione di chiamata utilizzata da un metodo descritto in una struttura METHODDATA.

public enum class CALLCONV
public enum CALLCONV
[System.Serializable]
public enum CALLCONV
type CALLCONV = 
[<System.Serializable>]
type CALLCONV = 
Public Enum CALLCONV
Ereditarietà
CALLCONV
Attributi

Campi

Nome Valore Descrizione
CC_CDECL 1

Indica che per un metodo viene usata la convenzione di chiamata della dichiarazione C (CDECL).

CC_MSCPASCAL 2

Indica che per un metodo viene utilizzata la convenzione di chiamata MSC Pascal (MSCPASCAL).

CC_PASCAL 2

Indica che per un metodo viene utilizzata la convenzione di chiamata Pascal.

CC_MACPASCAL 3

Indica che per un metodo viene utilizzata la convenzione di chiamata MacPASCAL (Macintosh Pascal).

CC_STDCALL 4

Indica che per un metodo viene utilizzata la convenzione di chiamata standard (STDCALL).

CC_RESERVED 5

Questo valore è riservato per uso futuro.

CC_SYSCALL 6

Indica che per un metodo viene utilizzata la convenzione di chiamata SYSCALL standard.

CC_MPWCDECL 7

Indica che la convenzione di chiamata CDECL (CDECL) dei programmatori Macintosh viene utilizzata per un metodo.

CC_MPWPASCAL 8

Indica che per un metodo viene utilizzata la convenzione di chiamata PASCAL dei programmatori Macintosh (MPW).

CC_MAX 9

Indica la fine dell'enumerazione CALLCONV .

Commenti

Le convenzioni di chiamata in questa classe descrivono in che modo le funzioni passano argomenti e restituiscono valori. Specificano l'ordine in cui vengono configurati i parametri per le funzioni chiamate, in cui i parametri vengono archiviati (nei registri o in memoria) e chi (chiamante o funzione chiamata) è responsabile della pulizia dello stack dopo la restituzione della funzione. Per esempio:

  • CC_CDECL usa le convenzioni di denominazione e chiamata del linguaggio C. Il chiamante inserisce i parametri nello stack in ordine inverso (da destra a sinistra) e pulisce lo stack dopo la restituzione della funzione. Questa convenzione di chiamata consente di chiamare le funzioni con varargs, che lo rende appropriato per l'uso con metodi che accettano un numero variabile di parametri, ad esempio le funzioni di runtime C printf, _printf_l, wprintf, _wprintf_l.

  • CC_PASCAL usa la convenzione di chiamata Pascal. Il chiamante inserisce i parametri nello stack in ordine da sinistra a destra. La funzione chiamata pulisce lo stack prima di restituire.

  • CC_STDCALL è la convenzione di chiamata standard per le funzioni Win32. Si tratta della convenzione predefinita per chiamare funzioni non gestite con platform invoke. Il chiamante inserisce i parametri nello stack in ordine inverso (da destra a sinistra) e la funzione chiamata pulisce lo stack prima di tornare.

  • CC_SYSCALL è simile a CDECL in tale argomento viene eseguito il push da destra a sinistra. I registri EAX, ECX ed EDX non vengono mantenuti.

Questi identificatori di convenzione di chiamata vengono usati da .NET Framework, dalla piattaforma ce incorporata Windows e da Automazione.

Common Language Runtime genera un'eccezione quando un metodo COM nel codice nativo restituisce un HRESULT. Per altre informazioni, vedere Procedura: Eseguire il mapping di HRESULT ed eccezioni.

Si applica a

Vedi anche