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 restituiscono valori. Specificano l'ordine in cui vengono configurati i parametri per le funzioni chiamate, in cui i parametri vengono archiviati (in registri o in memoria) e chi (chiamante o chiamata funzione) è responsabile della pulizia dello stack dopo che la funzione restituisce. Ad esempio:

  • CC_CDECL usa le convenzioni di denominazione e chiamata del linguaggio C. Il chiamante esegue il push dei parametri nello stack inverso (da destra a sinistra) e pulisce lo stack dopo che la funzione restituisce. Questa convenzione chiamante 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 esegue il push dei parametri nello stack in ordine sinistro a destra. La funzione denominata pulisce lo stack prima di restituire.

  • CC_STDCALL è la convenzione di chiamata standard per le funzioni Win32. È la convenzione predefinita per chiamare funzioni non gestite con l'richiamare della piattaforma. Il chiamante esegue il push dei parametri nello stack inverso (da destra a sinistra) e la funzione denominata pulisce lo stack prima di restituire.

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

Questi identificatori di convenzione chiamante vengono usati da .NET Framework, dalla piattaforma Windows Embedded CE e dall'automazione.

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

Si applica a

Vedi anche