CALLCONV Enumerazione
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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.