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