ВУЗ:
Составители:
17
C++Builder), поскольку все подробности механизма скрыты от программиста.
Тем не менее, он является наименее производительным: достаточно предста-
вить себе многократные вызовы GetIDsOfNames для удаленного сервера авто-
матизации, передаваемые по сети! Высокопроизводительная альтернатива –
раннее связывание на этапе компиляции или компоновки распределенного при-
ложения. Данный механизм предполагает , что на момент создания клиента
полностью известна информация о типе используемых объектов автоматиза-
ции: список поддерживаемых интерфейсов и их методов, параметры каждого
метода, типы свойств объектов и параметров методов и многое другое. Откуда
программист клиента (или соответствующая среда программирования) может
получить всю эту информацию ? Один из источников нам уже известен – это
документация, сопровождающая сервер автоматизации. Тем не менее, в таком
серьезном деле, как раннее связывание, нельзя слепо полагаться на добросове-
стность авторов документации. Во-первых, предоставляемой информации мо-
жет оказаться недостаточно, во- вторых, этой неформализованной информацией
не сможет воспользоваться среда программирования для автоматизации про-
цессов сборки распределенного приложения. Более надежный источник – биб -
лиотека типов, сопровождающая практически любой сколько- нибудь серьезный
сервер автоматизации.
Библиотека типов (Type Library) – независимое от языка программиро-
вания средство исчерпывающего документирования COM-объекта. Формат
библиотеки типов стандартизован в COM. Поставка библиотеки типов может
осуществляться разными способами. Например , ее содержимое может быть ин -
тегрировано в COM-сервер в качестве ресурса или распространяться независи-
мо в отдельных файлах с расширением .TLB или .OLB . Последнее расширение
традиционно для поставки библиотек типов приложений Microsoft Office.
Изучение библиотеки типов Delphi-программистом
Стандартный способ спецификации библиотек типов – язык Microsoft
IDL (Interface Definition Language). По данной спецификации компилятор MIDL
может сгенерировать библиотеку в стандартном двоичном формате, и именно
этот последний формат – обязателен для комплекта поставки сервера автомати-
зации. Исходный текст на IDL, как правило, не поставляется. Чтобы восполнить
этот пробел современные интегрированные среды программирования предос-
тавляют два механизма использования доступной информации о типе:
• просмотр и редактирование библиотеки типов при помощи специальной
утилиты – редактора библиотеки типов ;
• импорт библиотеки типов в проект клиентского приложения.
Оба механизма обеспечены как в среде Delphi, так и в C++Builder. Встро-
енный редактор библиотеки типов позволяет осуществлять просмотр и ре-
дактирование библиотеки, доступной в двоичном формате. Более того, при же-
лании можно автоматически сгенерировать исходный текст описания библио -
теки типов на IDL (осуществить экспорт библиотеки типов). Процедура им -
порта библиотеки типов заключается, упрощенно говоря, в генерации необ-
ходимой совокупности модулей , присоединяемых к проекту и делающих дос-
17 C++Builder), поскольку все подробности механизма скрыты от программиста. Тем не менее, он является наименее производительным: достаточно предста- вить себе многократные вызовы GetIDsOfNames для удаленного сервера авто- матизации, передаваемые по сети! Высокопроизводительная альтернатива – раннее связывание на этапе компиляции или компоновки распределенного при- ложения. Данный механизм предполагает, что на момент создания клиента полностью известна информация о типе используемых объектов автоматиза- ции: список поддерживаемых интерфейсов и их методов, параметры каждого метода, типы свойств объектов и параметров методов и многое другое. Откуда программист клиента (или соответствующая среда программирования) может получить всю эту информацию? Один из источников нам уже известен – это документация, сопровождающая сервер автоматизации. Тем не менее, в таком серьезном деле, как раннее связывание, нельзя слепо полагаться на добросове- стность авторов документации. Во-первых, предоставляемой информации мо- жет оказаться недостаточно, во-вторых, этой неформализованной информацией не сможет воспользоваться среда программирования для автоматизации про- цессов сборки распределенного приложения. Более надежный источник – биб- лиотека типов, сопровождающая практически любой сколько-нибудь серьезный сервер автоматизации. Библиотека типов (Type Library) – независимое от языка программиро- вания средство исчерпывающего документирования COM-объекта. Формат библиотеки типов стандартизован в COM. Поставка библиотеки типов может осуществляться разными способами. Например, ее содержимое может быть ин- тегрировано в COM-сервер в качестве ресурса или распространяться независи- мо в отдельных файлах с расширением .TLB или .OLB . Последнее расширение традиционно для поставки библиотек типов приложений Microsoft Office. Изучение библиотеки типов Delphi-программистом Стандартный способ спецификации библиотек типов – язык Microsoft IDL (Interface Definition Language). По данной спецификации компилятор MIDL может сгенерировать библиотеку в стандартном двоичном формате, и именно этот последний формат – обязателен для комплекта поставки сервера автомати- зации. Исходный текст на IDL, как правило, не поставляется. Чтобы восполнить этот пробел современные интегрированные среды программирования предос- тавляют два механизма использования доступной информации о типе: • просмотр и редактирование библиотеки типов при помощи специальной утилиты – редактора библиотеки типов; • импорт библиотеки типов в проект клиентского приложения. Оба механизма обеспечены как в среде Delphi, так и в C++Builder. Встро- енный редактор библиотеки типов позволяет осуществлять просмотр и ре- дактирование библиотеки, доступной в двоичном формате. Более того, при же- лании можно автоматически сгенерировать исходный текст описания библио- теки типов на IDL (осуществить экспорт библиотеки типов). Процедура им- порта библиотеки типов заключается, упрощенно говоря, в генерации необ- ходимой совокупности модулей, присоединяемых к проекту и делающих дос-
Страницы
- « первая
- ‹ предыдущая
- …
- 15
- 16
- 17
- 18
- 19
- …
- следующая ›
- последняя »