CorPinvokeMap 枚举

指定 PInvoke 调用的选项。

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;

成员

成员

说明

pmNoMangle

按指定方式使用每个成员名称。

pmCharSetMask

保留。

pmCharSetNotSpec

保留。

pmCharSetAnsi

以多字节字符串的形式封送字符串。

pmCharSetUnicode

以 Unicode 2 字节字符的形式封送字符串。

pmCharSetAuto

针对目标操作系统适当地自动封送字符串。 在 Windows NT、Windows 2000、Windows XP 和 Windows Server 2003 系列上,默认值为 Unicode;在 Windows 98 和 Windows Me 上,默认值为 ANSI。

pmBestFitUseAssem

保留。

pmBestFitEnabled

执行在 ANSI 字符集中缺少精确匹配的 Unicode 字符的最佳匹配映射。

pmBestFitDisabled

不执行 Unicode 字符的最佳匹配映射。 在这种情况下,所有不可映射的字符将被替换为“?”。

pmBestFitMask

保留。

pmThrowOnUnmappableCharUseAssem

保留。

pmThrowOnUnmappableCharEnabled

当互操作封送拆收器遇到不可映射的字符时引发异常。

pmThrowOnUnmappableCharDisabled

当互操作封送拆收器遇到不可映射的字符时不引发异常。

pmThrowOnUnmappableCharMask

保留

pmSupportsLastError

允许被调用方在从特性化方法返回之前调用 Win32 SetLastError 函数。

pmCallConvMask

保留

pmCallConvWinapi

使用默认平台调用约定。 例如,在 Windows 上默认为 StdCall,在 Windows CE .NET 上默认为 Cdecl。

pmCallConvCdecl

使用 Cdecl 调用约定。 在这种情况下,调用方将清理堆栈。 这样,将能够调用具有 varargs 的函数(即接受可变数目参数的函数)。

pmCallConvStdcall

使用 StdCall 调用约定。 在这种情况下,被调用方将清理堆栈。 这是使用平台 invoke 调用非托管函数的默认约定。

pmCallConvThiscall

使用 ThisCall 调用约定。 在这种情况下,第一个参数是 this 指针,并存储在寄存器 ECX 中。 其他参数被推送到堆栈上。 ThisCall 调用约定用于调用从非托管 DLL 导出类中的方法。

pmCallConvFastcall

保留。

pmMaxValue

保留。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**CorHdr.h

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

请参见

其他资源

元数据枚举