C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Урок 16. Что такое IDL? / ActiveX / Приложение

Visual C++. ActiveX
Урок 16. Что такое IDL?

Если совсем кратко, то IDL (Interface Definition Language) - это специальный язык для определения интерфейсов. Одно из его применений - это создание ActiveX на Visual C++. Интерфейсы на вкладке ClassView обозначаются специальным значком ("Леденец на палочке"):

Значек для интерфейса

Интерфейс представляет из себя только определения свойств, методов и событий элемента ActiveX. Никакой реализации при этом нет. Зачем же для описания интерфейса использовать специальный язык? Причина очень проста - ActiveX-элементы не зависят от языка. Элемент ActiveX, написанный, скажем, на Visual C++, должна понимать любая программа (написанная и на VB, и на Delphi, и на других языках). Потому в описании интерфейса и используется специальный язык - IDL. Реализация же элемента ActiveX пишется уже на конкретном языке программирования.

В состав нашего проекта для элемента ActiveX входит файл с расширением *.odl (FirstAX.odl). Именно в этом файле и содержится интерфейс для нашего ActiveX'а. Давайте кратко посмотрим на его устройство. В начале мы видим строки

...
[ uuid(21F53F7A-237A-4F12-B0E8-4328F48BA3B5), version(1.0),
  helpfile("FirstAX.hlp"),
  helpstring("FirstAX ActiveX Control module"),
  control ]
library FIRSTAXLib
...

Здесь мы видим три имени (они выделены полужирным шрифтом). Первое имя

...
uuid(21F53F7A-237A-4F12-B0E8-4328F48BA3B5),
...

это компьютерное имя (у вас эти цифры будет другими). Оно используется для идентификации нашего элемента. именно под этим именем информация о нашем ActiveX-элементе хранится в реестре. Это имя представляет из себя GUID (Globally Unique IDentifier) - уникальное 128-битовое имя. Его уникальность гарантируется статистически. Генерируется это имя некоторым сложным способом - через номер сетевой карты и т. д.

Второе имя

  ...
  helpstring("FirstAX ActiveX Control module")
  ...

- это имя, которое используют различные программы просмотра. Вот как оно будет видно в диалоговом окне Visual Basic'а (для его показа выберите в VB меню Project, затем пункт References):

Окно References в VB

Третье имя

...
library FIRSTAXLib
...

это имя для программы, которая использует ваш элемент ActiveX. Вот как, например, это имя выглядит в VB в ObjectBrowser'е:

ObjectBrowser в VB

Далее в этом файле вы видите идентификаторы интерфейсов. Это строки

...
[ uuid(34453837-5884-4429-BB17-738CFCB11950),
   helpstring("Dispatch interface for FirstAX Control"), hidden ]
    dispinterface _DFirstAX
    ...

и

...
[ uuid(5E57FED5-3BFB-4FE7-9CB5-8AB83D2E4321),
   helpstring("Event interface for FirstAX Control") ]
    dispinterface _DFirstAXEvents
    ...

Внутри же них идут описания свойств, методов и событий. Но это все более подробно мы рассмотрим позже. Пока же нам важно было только получить общее представление об языке IDL.