Condividi tramite


CALLCONV Enumerazione

Definizione

Identifica la convenzione di chiamata usata 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

CC_CDECL 1

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

CC_MACPASCAL 3

Indica che per un metodo viene usata la convenzione di chiamata MACPASCAL (Macintosh Pascal).

CC_MAX 9

Indica la fine dell'enumerazione CALLCONV.

CC_MPWCDECL 7

Indica che per un metodo viene usata la convenzione di chiamata CDECL MPW (Macintosh Programmers' Workbench).

CC_MPWPASCAL 8

Indica che per un metodo viene usata la convenzione di chiamata PASCAL MPW (Macintosh Programmers' Workbench).

CC_MSCPASCAL 2

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

CC_PASCAL 2

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

CC_RESERVED 5

Questo valore è riservato per l'uso futuro.

CC_STDCALL 4

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

CC_SYSCALL 6

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

Commenti

Le convenzioni di chiamata in questa classe descrivono come le funzioni passano argomenti e valori restituiti. Specificano l'ordine in cui i parametri vengono configurati 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. Ad 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 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 restituire.

  • CC_SYSCALL è simile a CDECL in quanto gli argomenti vengono inseriti 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 Windows Embedded CE e da Automazione.

Common Language Runtime genera un'eccezione quando un metodo COM nel codice nativo restituisce un valore HRESULT. Per altre informazioni, vedere How to: Map HRESULTs and Exceptions.

Si applica a

Vedi anche