英語で読む

次の方法で共有


CALLCONV 列挙型

定義

METHODDATA 構造体で記述されたメソッドが使用する呼び出し規則を識別します。

C#
public enum CALLCONV
C#
[System.Serializable]
public enum CALLCONV
継承
CALLCONV
属性

フィールド

名前 説明
CC_CDECL 1

メソッドに対して C 宣言 (CDECL) 呼び出し規則を使用することを示します。

CC_MACPASCAL 3

メソッドに対して Macintosh Pascal (MACPASCAL) 呼び出し規則を使用することを示します。

CC_MAX 9

CALLCONV 列挙体の末尾を示します。

CC_MPWCDECL 7

メソッドに対して Macintosh Programmers’ Workbench (MPW) の CDECL 呼び出し規則を使用することを示します。

CC_MPWPASCAL 8

メソッドに対して Macintosh Programmers’ Workbench (MPW) の PASCAL 呼び出し規則を使用することを示します。

CC_MSCPASCAL 2

メソッドに対して MSC Pascal (MSCPASCAL) 呼び出し規則を使用することを示します。

CC_PASCAL 2

メソッドに対して Pascal 呼び出し規則を使用することを示します。

CC_RESERVED 5

この値は、今後使用するために予約されています。

CC_STDCALL 4

メソッドに対して標準呼び出し規則 (STDCALL) を使用することを示します。

CC_SYSCALL 6

メソッドに対して標準 SYSCALL 呼び出し規則を使用することを示します。

注釈

このクラスの呼び出し規則では、関数が引数と戻り値を渡す方法について説明します。 これらは、呼び出された関数に対してパラメーターを設定する順序を指定します。パラメーターは (レジスタまたはメモリに) 格納され、関数が戻った後にスタックをクリーンアップするユーザー (呼び出し元または呼び出し元関数) が責任を負います。 次に例を示します。

  • CC_CDECLでは、C 言語の名前付け規則と呼び出し規則が使用されます。 呼び出し元は、パラメーターを逆 (右から左) の順序でスタックにプッシュし、関数が戻った後にスタックをクリーンアップします。 この呼び出し規則を使用すると、 を使用して関数を呼び出すことにより、C ランタイム関数 varargsprintf、_printf_l、wprintf、_wprintf_lなど、可変数のパラメーターを受け入れるメソッドで使用するのに適しています。

  • CC_PASCALでは、Pascal 呼び出し規則が使用されます。 呼び出し元は、パラメーターを左から右の順序でスタックにプッシュします。 呼び出された関数は、 を返す前にスタックをクリーンアップします。

  • CC_STDCALLは、Win32 関数の標準的な呼び出し規則です。 これは、プラットフォーム呼び出しを使用してアンマネージ関数を呼び出すための既定の規則です。 呼び出し元は、パラメーターを逆 (右から左) の順序でスタックにプッシュし、呼び出された関数が返される前にスタックをクリーンアップします。

  • CC_SYSCALLは、引数が右から左にプッシュされるという点で CDECL に似ています。 EAX、ECX、および EDX レジスタは保持されません。

これらの呼び出し規約識別子は、.NET Framework、Windows Embedded CE プラットフォーム、および Automation によって使用されます。

共通言語ランタイムは、ネイティブ コードの COM メソッドが HRESULT を返すときに例外をスローします。 詳細については、「 How to: Map HRESULTs and Exceptions」を参照してください。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

こちらもご覧ください