Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

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.



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS