CALLCONV 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
METHODDATA 構造体で説明されているメソッドによって使用される呼び出し規則を識別します。
public enum class CALLCONV
public enum CALLCONV
[System.Serializable]
public enum CALLCONV
type CALLCONV =
[<System.Serializable>]
type CALLCONV =
Public Enum CALLCONV
- 継承
- 属性
フィールド
| 名前 | 値 | 説明 |
|---|---|---|
| CC_CDECL | 1 | メソッドに C 宣言 (CDECL) 呼び出し規則が使用されることを示します。 |
| CC_MSCPASCAL | 2 | MSC Pascal (MSCPASCAL) 呼び出し規則がメソッドに使用されることを示します。 |
| CC_PASCAL | 2 | パスカル呼び出し規則がメソッドに使用されることを示します。 |
| CC_MACPASCAL | 3 | メソッドに Macintosh Pascal (MACPASCAL) 呼び出し規則が使用されることを示します。 |
| CC_STDCALL | 4 | 標準呼び出し規則 (STDCALL) がメソッドに使用されることを示します。 |
| CC_RESERVED | 5 | この値は、今後の使用のために予約されています。 |
| CC_SYSCALL | 6 | 標準の SYSCALL 呼び出し規則がメソッドに使用されることを示します。 |
| CC_MPWCDECL | 7 | メソッドに Macintosh Programmers Workbench (MPW) CDECL 呼び出し規則が使用されることを示します。 |
| CC_MPWPASCAL | 8 | メソッドに Macintosh Programmers Workbench (MPW) PASCAL 呼び出し規則が使用されることを示します。 |
| CC_MAX | 9 | CALLCONV列挙体の末尾を示します。 |
注釈
このクラスの呼び出し規則では、関数が引数と戻り値を渡す方法について説明します。 呼び出された関数に対してパラメーターを設定する順序、パラメーターが (レジスタまたはメモリに) 格納される順序、および関数が戻った後にスタックをクリーンアップするユーザー (呼び出し元または呼び出し元の関数) を指定します。 例えば次が挙げられます。
CC_CDECLは、C 言語の名前付け規則と呼び出し規則を使用します。 呼び出し元は、パラメーターを逆 (右から左) の順序でスタックにプッシュし、関数が戻った後にスタックをクリーンアップします。 この呼び出し規則を使用すると、
varargsを使用して関数を呼び出すことにより、C ランタイム関数 printf、_printf_l、wprintf、_wprintf_lなどの可変数のパラメーターを受け入れるメソッドで使用するのに適しています。CC_PASCALはパスカル呼び出し規則を使用します。 呼び出し元は、パラメーターを左から右の順序でスタックにプッシュします。 呼び出された関数は、返す前にスタックをクリーンアップします。
CC_STDCALLは、Win32 関数の標準的な呼び出し規則です。 これは、プラットフォーム呼び出しを使用してアンマネージ関数を呼び出すための既定の規則です。 呼び出し元は、パラメーターを逆 (右から左) の順序でスタックにプッシュし、呼び出された関数は返す前にスタックをクリーンアップします。
CC_SYSCALLは、引数が右から左にプッシュされるという点で CDECL に似ています。 EAX、ECX、および EDX レジスタは保持されません。
これらの呼び出し規則識別子は、.NET Framework、Windows Embedded CE プラットフォーム、および Automation によって使用されます。
共通言語ランタイムは、ネイティブ コードの COM メソッドが HRESULT を返すときに例外をスローします。 詳細については、「 方法: HRESULT と例外をマップする」を参照してください。