CALLCONV 列挙型

定義

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

public enum class CALLCONV
public enum CALLCONV
[System.Serializable]
public enum CALLCONV
type CALLCONV = 
[<System.Serializable>]
type CALLCONV = 
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 言語の名前付け規則と呼び出し規則が使用されます。 呼び出し元は、逆 (右から左) の順序でパラメーターをスタックにプッシュし、関数が返された後にスタックをクリーンアップします。 この呼び出し規則を使用すると、 を使用して関数 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 を返すときに例外をスローします。 詳細については、「 How to: Map HRESULTs and Exceptions」を参照してください。

適用対象

こちらもご覧ください