import - атрибут
Директива импорта указывает другой файл IDL, ODL или заголовок, содержащий определения, на которые вы хотите ссылаться из основного IDL-файла.
import "filename" [[ , ... ]] ;
Параметры
-
filename
-
Указывает имя импортируемых файлов заголовка, IDL или ODL.
Remarks
С помощью директивы импорта все операторы IDL в импортированном файле, такие как typedefs, объявления констант и определения интерфейса становятся доступными для импорта. IDL-файл.
Импортированный файл обрабатывается отдельно (то есть препроцессор CPP вызывается независимо) от импортируемого IDL-файла. Таким образом, директивы предварительного процессора, такие как #define, не переносятся из импортированного заголовка или IDL-файла в импортируемый IDL-файл.
Как и макрос препроцессора языка C #include, директива импорта сообщает компилятору включить типы данных, определенные в импортированных IDL-файлах. В отличие от директивы #include , директива импорта игнорирует прототипы процедур, так как заглушки не создаются для чего-либо в импортированном файле.
Конкретные сведения об использовании импорта для включения файлов заголовков в IDL-файле см. в разделе "Импорт файлов заголовков системы".
Заголовок языка C (. H) файл, созданный для интерфейса, не содержит напрямую импортированные типы, а создает директиву #include для файла заголовка, соответствующего импортированному интерфейсу. Например, при импорте BASE. IDL в ваше ПРОИЗВОДНОЕ. IDL— созданный файл заголовка ПРОИЗВОДНОЕ. H будет содержать директиву #include BASE.H.
Применяются следующие правила.
- Ключевое слово импорта является необязательным и может отображаться не более раз в файле IDL.
- Каждое ключевое слово импорта может быть связано с несколькими именами файлов.
- Разделите несколько имен файлов запятыми.
- Необходимо заключить имя файла в кавычки и завершить инструкцию импорта точкой с запятой (;).
- Вы можете импортировать интерфейс без атрибутов в другой IDL-файл. Однако интерфейс должен содержать только типы данных; Он не может содержать какие-либо процедуры. Если даже одна процедура содержится в импортированном интерфейсе, необходимо указать локальный или UUID-атрибут .
- Функция импорта является идемпотентной, т. е. импорт интерфейса несколько раз не оказывает дополнительного эффекта.
Примечание
Поведение директивы импорта не зависит от параметров режима компилятора MIDL /ms_ext (по умолчанию), /osf и /app_config. Однако режим компилятора (/osf или /ms_ext) может повлиять на оформление атрибута указателя на импортированные типы. Дополнительные сведения см. в разделе "Наследование типов атрибутов указателя".
Примеры
import "myoldodl.odl";
import "unknwn.idl";
import "part1.idl", "part2.idl", "part3.idl";
См. также раздел