CorPinvokeMap Enumeration

指定 PInvoke 调用的选项。

Syntax

typedef enum  CorPinvokeMap {

    pmNoMangle          = 0x0001,

    pmCharSetMask       = 0x0006,
    pmCharSetNotSpec    = 0x0000,
    pmCharSetAnsi       = 0x0002,
    pmCharSetUnicode    = 0x0004,
    pmCharSetAuto       = 0x0006,

    pmBestFitUseAssem   = 0x0000,
    pmBestFitEnabled    = 0x0010,
    pmBestFitDisabled   = 0x0020,
    pmBestFitMask       = 0x0030,

    pmThrowOnUnmappableCharUseAssem   = 0x0000,
    pmThrowOnUnmappableCharEnabled    = 0x1000,
    pmThrowOnUnmappableCharDisabled   = 0x2000,
    pmThrowOnUnmappableCharMask       = 0x3000,

    pmSupportsLastError = 0x0040,

    pmCallConvMask      = 0x0700,
    pmCallConvWinapi    = 0x0100,
    pmCallConvCdecl     = 0x0200,
    pmCallConvStdcall   = 0x0300,
    pmCallConvThiscall  = 0x0400,
    pmCallConvFastcall  = 0x0500,

    pmMaxValue          = 0xFFFF

} CorPinvokeMap;

Members

Member Description
pmNoMangle 按指定使用每个成员名称。
pmCharSetMask Reserved.
pmCharSetNotSpec Reserved.
pmCharSetAnsi 将字符串封送为多字节字符串。
pmCharSetUnicode 将字符串封送为 Unicode 2 字节字符。
pmCharSetAuto 自动为目标作系统适当封送字符串。 默认值为 Windows 上的 Unicode。
pmBestFitUseAssem Reserved.
pmBestFitEnabled 对 ANSI 字符集中缺少完全匹配的 Unicode 字符执行最佳匹配映射。
pmBestFitDisabled 不要对 Unicode 字符执行最适合的映射。 在这种情况下,所有不可应用字符都将替换为“?”。
pmBestFitMask Reserved.
pmThrowOnUnmappableCharUseAssem Reserved.
pmThrowOnUnmappableCharEnabled 当互作封送器遇到不可应用字符时引发异常。
pmThrowOnUnmappableCharDisabled 当互作封送器遇到不可应用字符时,请不要引发异常。
pmThrowOnUnmappableCharMask Reserved
pmSupportsLastError 允许被调用方在从特性化方法返回之前调用 Win32 SetLastError 函数。
pmCallConvMask Reserved
pmCallConvWinapi 使用默认平台调用约定。 例如,在 Windows 上,默认值为 StdCall Windows CE .NET Cdecl
pmCallConvCdecl 使用 Cdecl 调用约定。 在这种情况下,调用方会清理堆栈。 这允许调用函数( varargs 即接受可变数量的参数的函数)。
pmCallConvStdcall 使用 StdCall 调用约定。 在这种情况下,被调用方会清理堆栈。 这是使用平台调用调用非托管函数的默认约定。
pmCallConvThiscall 使用 ThisCall 调用约定。 在这种情况下,第一个参数是 this 指针,存储在寄存器 ECX 中。 其他参数在堆栈上推送。 调用 ThisCall 约定用于对从非托管 DLL 导出的类调用方法。
pmCallConvFastcall Reserved.
pmMaxValue Reserved.

Requirements

平台: 请参阅 .NET 支持的作系统

Header: CorHdr.h