Поделиться через


Перечисление 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

Выполняет сортировку строк, представляя их в виде 2-байтных знаков Юникода.

pmCharSetAuto

Выполняет автоматический маршалинг строк, соответствующий целевой операционной системе. По умолчанию в Windows NT, Windows 2000, Windows XP и семействе Windows Server 2003 используется Юникод, а в Windows 98 и Windows Me — ANSI.

pmBestFitUseAssem

Зарезервировано.

pmBestFitEnabled

Используйте стратегию наилучшего соответствия для символов Юникод, не имеющих точного соответствия в наборе символов ANSI.

pmBestFitDisabled

Не следует используовать стратегию наилучшего соответствия для символов Юникод. В этом случае все символы, не имеющие соответствия, будут заменены на "?".

pmBestFitMask

Зарезервировано.

pmThrowOnUnmappableCharUseAssem

Зарезервировано.

pmThrowOnUnmappableCharEnabled

При обнаружении маршалером взаимодействия несопоставимого символа произойдет исключение.

pmThrowOnUnmappableCharDisabled

При обнаружении маршалером взаимодействия несопоставимого символа не произойдет исключение.

pmThrowOnUnmappableCharMask

Зарезервировано.

pmSupportsLastError

Позволить вызываемому вызывать функцию Win32 SetLastError перед возвращением из метода с атрибутами.

pmCallConvMask

Зарезервировано.

pmCallConvWinapi

Использовать соглашение о вызовах платформы по умолчанию. Например, в Windows по умолчанию используется StdCall, а в Windows CE .NET — Cdecl.

pmCallConvCdecl

Использовать соглашение о вызовах Cdecl. В этом случае вызывающий очищает стек. Это позволит осуществлять вызов функций с varargs (функций, принимающих переменное количество параметров).

pmCallConvStdcall

Использовать соглашение о вызовах StdCall. В этом случае вызываемый очищает стек. Это соглашение, используемое по умолчанию для вызова неуправляемых функций с вызовом неуправляемого кода.

pmCallConvThiscall

Использовать соглашение о вызовах ThisCall. В этом случае первый параметр — указатель this, хранящийся в регистре ECX. Другие параметры помещаются в стек. Соглашение о вызовах ThisCall используется для вызова методов в классах, экспортируемых из неуправляемой динамической библиотеки DLL.

pmCallConvFastcall

Зарезервировано.

pmMaxValue

Зарезервировано.

Требования

Платформы: см. раздел Требования к системе для .NET Framework.

Заголовок: CorHdr.h

Версии платформы .NET Framework: 4, 3.5 с пакетом обновления 1 (SP1), 3.5, 3.0 с пакетом обновления 1 (SP1), 3.0, 2.0 с пакетом обновления 1 (SP1), 2.0, 1.1, 1.0

См. также

Другие ресурсы

Перечисления метаданных