MethodImportAttributes Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает флаги для атрибутов импорта неуправляемых методов.
Это перечисление поддерживает побитовую комбинацию значений его членов.
public enum class MethodImportAttributes
[System.Flags]
public enum MethodImportAttributes
[<System.Flags>]
type MethodImportAttributes =
Public Enum MethodImportAttributes
- Наследование
- Атрибуты
Поля
| Имя | Значение | Описание |
|---|---|---|
| None | 0 | Задает атрибуты импорта метода по умолчанию. |
| ExactSpelling | 1 | Указывает, что среда CLR не должна пытаться использовать имена точек входа с суффиксами для конкретного набора при поиске импортированного метода. |
| CharSetAnsi | 2 | Указывает, что строки маршалируются в виде строк с несколькими байтами: кодовая страница по умолчанию по умолчанию Windows (ANSI) на Windows и UTF-8 в Unix. |
| CharSetUnicode | 4 | Указывает, что строки маршаллируются как строки символов Юникода 2-байтов. |
| CharSetAuto | 6 | Указывает, что набор символов выбирается автоматически. Дополнительные сведения см. в разделе Charsets и маршалинг . |
| CharSetMask | 6 | Задает набор символов, используемый для маршалинга строк. |
| BestFitMappingEnable | 16 | Указывает, что наиболее подходящее поведение сопоставления при преобразовании символов Юникода в символы ANSI включено. |
| BestFitMappingDisable | 32 | Указывает, что оптимально подходит поведение сопоставления при преобразовании символов Юникода в символы ANSI отключено. |
| BestFitMappingMask | 48 | Указывает, включено ли или отключено ли оптимальное поведение сопоставления символов Юникода в символы ANSI. |
| SetLastError | 64 | Указывает, что импортированный метод вызывает функцию SetLastError Windows API перед возвратом. |
| CallingConventionWinApi | 256 | Указывает, что используется соглашение о вызовах платформы по умолчанию . |
| CallingConventionCDecl | 512 | Указывает, что соглашение о вызове — CDecl. |
| CallingConventionStdCall | 768 | Указывает, что соглашение о вызове — StdCall. |
| CallingConventionThisCall | 1024 | Указывает, что соглашение о вызове — ThisCall. |
| CallingConventionFastCall | 1280 | Указывает, что соглашение о вызове — FastCall. |
| CallingConventionMask | 1792 | Указывает соглашение о вызовах. |
| ThrowOnUnmappableCharEnable | 4096 | Указывает, что исключение должно быть создано при преобразовании символа Юникода без использования в символ ANSI. |
| ThrowOnUnmappableCharDisable | 8192 | Указывает, что исключение не должно вызываться при преобразовании символа Юникода в символ ANSI. |
| ThrowOnUnmappableCharMask | 12288 | Указывает, следует ли создавать исключение при преобразовании символа Юникода без использования в символ ANSI. |
Комментарии
Атрибуты импорта метода используются со структурой MethodImport .
Чтобы проверить, имеет ли значение этого перечисления конкретный флаг, объедините это значение с соответствующей константой маски с помощью побитовой операции AND (& в C#) и сравните его результат с константой флага, которую необходимо проверить. Например, чтобы проверить соглашение о вызовах CDecl, используйте следующий код:
if((attributes & MethodImportAttributes.CallingConventionMask) == MethodImportAttributes.CallingConventionCDecl)
{
// The calling convention is CDecl
}
Дополнительные сведения об импорте неуправляемого метода и значении этих атрибутов см. в разделе DllImportAttribute.