CALLCONV Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Identifikuje konvenci volání používanou metodou popsanou ve struktuře METHODDATA.
public enum class CALLCONV
public enum CALLCONV
[System.Serializable]
public enum CALLCONV
type CALLCONV =
[<System.Serializable>]
type CALLCONV =
Public Enum CALLCONV
- Dědičnost
- Atributy
Pole
| Name | Hodnota | Description |
|---|---|---|
| CC_CDECL | 1 | Označuje, že konvence volání C deklarace jazyka C (CDECL) se používá pro metodu. |
| CC_MSCPASCAL | 2 | Označuje, že se pro metodu používá konvence volání MSC Pascal (MSCPASCAL). |
| CC_PASCAL | 2 | Označuje, že pascal volání konvence se používá pro metodu. |
| CC_MACPASCAL | 3 | Označuje, že pro metodu se používá konvence volání Macintosh Pascal (MACPASCAL). |
| CC_STDCALL | 4 | Označuje, že pro metodu se používá standardní konvence volání (STDCALL). |
| CC_RESERVED | 5 | Tato hodnota je vyhrazena pro budoucí použití. |
| CC_SYSCALL | 6 | Označuje, že se pro metodu používá standardní konvence volání SYSCALL. |
| CC_MPWCDECL | 7 | Označuje, že se pro metodu používá konvence volání CDECL programu Macintosh Programmers Workbench (MPW). |
| CC_MPWPASCAL | 8 | Označuje, že pro metodu se používá konvence volání PASCAL (Workbench) Macintosh Programmers Workbench (MPW). |
| CC_MAX | 9 | Označuje konec výčtu CALLCONV . |
Poznámky
Konvence volání v této třídě popisují, jak funkce předávají argumenty a vracejí hodnoty. Určují pořadí, ve kterém jsou parametry nastaveny pro volané funkce, kde jsou parametry uloženy (v registrech nebo v paměti) a kdo (volající nebo volaná funkce) je zodpovědný za vyčištění zásobníku po vrácení funkce. Příklad:
CC_CDECL používá konvence pojmenování a volání jazyka C. Volající nasdílí parametry do zásobníku v obráceném pořadí (zprava doleva) a po vrácení funkce zásobník vyčistí. Tato konvence volání umožňuje volat funkce pomocí
varargs, což je vhodné pro použití s metodami, které přijímají proměnný počet parametrů, jako jsou funkce runtime jazyka C printf, _printf_l, wprintf, _wprintf_l.CC_PASCAL používá konvenci volání Pascal. Volající nasdílí parametry do zásobníku v pořadí zleva doprava. Volané funkce před vrácením zásobník vyčistí.
CC_STDCALL je standardní konvence volání pro funkce Win32. Jedná se o výchozí konvenci volání nespravovaných funkcí s voláním platformy. Volající nasdílí parametry do zásobníku v obráceném pořadí (zprava doleva) a zavolávaná funkce zásobník před vrácením vyčistí.
CC_SYSCALL se podobá seznamu CDECL v tom, že argumenty se odsunou zprava doleva. Rejstříky EAX, ECX a EDX se nezachovají.
Tyto identifikátory konvence volání používají rozhraní .NET Framework, platformu Windows Embedded CE a automation.
Modul CLR (Common Language Runtime) vyvolá výjimku, když metoda COM v nativním kódu vrátí HRESULT. Další informace naleznete v tématu Postupy: Mapování HRESULT a výjimek.