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;
成員
member | 描述 |
---|---|
pmNoMangle |
依指定使用每個成員名稱。 |
pmCharSetMask |
保留的。 |
pmCharSetNotSpec |
保留的。 |
pmCharSetAnsi |
將字串當做多位元組字元字串來封送處理。 |
pmCharSetUnicode |
封送處理字串為 Unicode 2 個位元組字元。 |
pmCharSetAuto |
自動為目標作業系統妥善地封送處理字串。 預設值為 Windows 上的 Unicode。 |
pmBestFitUseAssem |
保留的。 |
pmBestFitEnabled |
針對在 ANSI 字元集中缺少完全相符的 Unicode 字元,執行最合適的對應。 |
pmBestFitDisabled |
請勿執行 Unicode 字元的自動調整對應。 在這個情況下,所有無法對應的字元都會由「?」取代。 |
pmBestFitMask |
保留的。 |
pmThrowOnUnmappableCharUseAssem |
保留的。 |
pmThrowOnUnmappableCharEnabled |
當 Interop 封送處理器遇到無法對應的字元時,擲回例外狀況。 |
pmThrowOnUnmappableCharDisabled |
當 Interop 封送處理器遇到無法對應的字元時,請勿擲回例外狀況。 |
pmThrowOnUnmappableCharMask |
保留 |
pmSupportsLastError |
在屬性方法傳回之前,允許被呼叫者呼叫 Win32 SetLastError 函式。 |
pmCallConvMask |
保留 |
pmCallConvWinapi |
使用預設平台呼叫慣例。 例如,在 Windows 上,預設值為 StdCall ,且在 Windows CE .NET 上為 Cdecl 。 |
pmCallConvCdecl |
使用 Cdecl 呼叫慣例。 在這個情況下,呼叫者會清除堆疊。 這可讓您使用 varargs 啟用呼叫函式 (也就是接受可變數目參數的函式)。 |
pmCallConvStdcall |
使用 StdCall 呼叫慣例。 在這個情況下,被呼叫者會清除堆疊。 這是針對用平台叫用呼叫 Unmanaged 函式的預設慣例。 |
pmCallConvThiscall |
使用 ThisCall 呼叫慣例。 在這個情況下,第一個參數為 this 指標且儲存在暫存器 ECX 中。 其他參數會被推入至堆疊。 ThisCall 呼叫慣例是用來呼叫從未受控 DLL 所匯出類別上的方法。 |
pmCallConvFastcall |
保留的。 |
pmMaxValue |
保留的。 |
規格需求
平台:請參閱系統需求。
標頭:CorHdr.h
.NET Framework版本:自 1.0 起提供