指定 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 |
當 Interop 封送處理器遇到無法套用的字元時,擲回例外狀況。 |
pmThrowOnUnmappableCharDisabled |
當 Interop 封送處理器遇到無法套用的字元時,請勿擲回例外狀況。 |
pmThrowOnUnmappableCharMask |
Reserved |
pmSupportsLastError |
允許被呼叫者先呼叫 Win32 SetLastError 函式,再從屬性化方法傳回。 |
pmCallConvMask |
Reserved |
pmCallConvWinapi |
使用預設平臺呼叫慣例。 例如,在 Windows 上,預設值是 StdCall ,而 Windows CE .NET 則是 Cdecl。 |
pmCallConvCdecl |
Cdecl使用呼叫慣例。 在此情況下,呼叫端會清除堆疊。 這可讓您使用呼叫函 varargs 式(也就是接受可變參數數目的函式)。 |
pmCallConvStdcall |
StdCall使用呼叫慣例。 在此情況下,被呼叫端會清除堆疊。 這是使用平台調用呼叫 Unmanaged 函式的預設慣例。 |
pmCallConvThiscall |
ThisCall使用呼叫慣例。 在此情況下,第一個參數是 this 指標,並儲存在緩存器 ECX 中。 其他參數會推送在堆疊上。 呼叫 ThisCall 慣例是用來在從 Unmanaged DLL 導出的類別上呼叫方法。 |
pmCallConvFastcall |
Reserved. |
pmMaxValue |
Reserved. |
Requirements
平臺: 請參閱 .NET 支援的作系統。
Header: CorHdr.h