Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Директива импорта задает другой файл IDL, ODL или заголовок, содержащий определения, на которые нужно ссылаться из основного файла IDL.
import "filename" [[ , ... ]] ;
Параметры
-
filename
-
Указывает имя импорта файла заголовка, IDL или ODL.
Замечания
С помощью директивы импорта все инструкции 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) может повлиять на оформление атрибута указателя на импортированные типы. Дополнительные сведения см. в разделеPointer-Attribute Наследование типов.
Примеры
import "myoldodl.odl";
import "unknwn.idl";
import "part1.idl", "part2.idl", "part3.idl";
См. также