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


Атрибуты #import (C++)

Предоставляет ссылки на атрибуты, используемые с директивой #import.

Блок, относящийся только к системам Microsoft

Для директивы #import доступны следующие атрибуты.

Атрибут

Описание

auto_rename

Переименовывает зарезервированные слова C++ путем добавления двух знаков подчеркивания (__) к именам переменных, чтобы разрешить потенциальные конфликты имен.

auto_search

Указывает, что если на библиотеку типов ссылаются при помощи директивы #import, и при этом она сама ссылается на другую библиотеку типов, то компилятор может неявным образом выполнить директиву #import и для второй библиотеки типов.

embedded_idl

Указывает, что библиотека типов записывается в файл .tlh с сохранением кода, созданного с атрибутами.

exclude (#import)

Исключает элементы из создаваемых файлов заголовка библиотеки типов.

high_method_prefix

Задает префикс, используемый при именовании высокоуровневых свойств и методов.

high_property_prefixes

Задает другие префиксы для трех методов свойств.

implementation_only

Отключает создание файла заголовка .tlh (основного файла заголовка).

include()

Отключает автоматическое исключение.

inject_statement

Вставляет свой аргумент как исходный текст в заголовок библиотеки типов.

named_guids

Указывает компилятору определять и инициализировать переменные GUID в старом стиле, в форме LIBID_MyLib, CLSID_MyCoClass, IID_MyInterface и DIID_MyDispInterface.

no_auto_exclude

Отключает автоматическое исключение.

no_dual_interfaces

Изменяет способ, которым компилятор создает функции оболочки для методов сдвоенных интерфейсов.

no_implementation

Отключает создание заголовка .tli, который содержит реализацию функций-членов оболочки.

no_namespace

Указывает, что пространство имен не генерируется компилятором.

no_registry

Указывает компилятору не искать библиотеки типов в реестре.

no_search_namespace

Имеет ту же функцию, что и атрибут no_namespace, однако применяется для библиотек типов, для которых вы использовали директиву #import с атрибутом auto_search.

no_smart_pointers

Отключает создание интеллектуальных указателей для всех интерфейсов в библиотеке типов.

raw_dispinterfaces

Указывает компилятору сгенерировать низкоуровневые функции оболочки для методов и свойств disp-интерфейса, а также свойства, которые вызывают функцию IDispatch::Invoke и возвращают код ошибки HRESULT.

raw_interfaces_only

Отключает создание функций оболочки обработки ошибок, а также объявлений property (C++), в которых используются такие функции оболочки.

raw_method_prefix

Указывает другой префикс, чтобы избежать конфликтов имен.

raw_native_types

Отключает использование классов поддержки COM в высокоуровневых функциях оболочки и принудительно использует вместо них низкоуровневые типы данных.

raw_property_prefixes

Задает другие префиксы для трех методов свойств.

rename (#import)

Обходит проблемы конфликтов имен.

rename_namespace

Переименовывает пространство имен, к которому относится содержимое библиотеки типов.

rename_search_namespace

Имеет ту же функцию, что и атрибут rename_namespace, однако применяется для библиотек типов, для которых вы использовали директиву #import с атрибутом auto_search.

tlbid

Позволяет загружать библиотеки, отличные от основной библиотеки типов.

Завершение блока, относящегося только к системам Microsoft

См. также

Ссылки

Директива #import (C++)