指定 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