Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб. раб. 2

.doc
Скачиваний:
10
Добавлен:
06.05.2017
Размер:
30.72 Кб
Скачать

Лабораторная работа №2

Создание и использование внутрипроцессного COM-сервера с библиотекой типов

Цель: получить навыки создания внутрипроцессного СОМ-сервера с библиотекой типов.

Краткие теоретические сведения

Библиотека типов – это специальный двоичный ресурс, описывающий интерфейсы и методы, реализуемые СОМ-сервером. Кроме наличия библиотеки типов, сервер должен поддерживать интерфейс IProvideClassInfo. В Delphi такой сервер реализуется путем наследования его от класса TTypedComObject. Для этого следует оставить установленным флажок Include Type Library в окне мастера создания СОМ-объекта.

Для создания СОМ-сервера с библиотекой типов необходимо установить флажок «Include Type Library» в мастере создания СОМ-объекта. Это приведет к автоматической генерации интерфейсного модуля к создаваемому СОМ-объекту, который содержит описание всех необходимых для работы с сервером интерфейсов.

Для описания интерфейсов СОМ-объекта в Delphi откроется редактор библиотеки типов, с помощью которого необходимо описать все требуемые интерфейсы, их свойства и методы. После этого необходимо нажать на кнопку «Refresh» панели инструментов редактора, и изменения будут автоматически внесены во все требуемые модули. После этого необходимо лишь дописать реализацию указанных методов в модулях проекта.

Регистрация библиотеки типов в операционной системе также может быть выполнена автоматически. Для этого необходимо нажать на кнопку «Register Type Library» панели инструментов редактора.

Ход работы

1 Создать внутрипроцессный сервер в виде динамической библиотеки, для чего выбрать на странице ActiveX Репозитория Delphi значок ActiveX Library, в результате чего будет создан новый проект DLL-библиотеки.

2 Из Репозитория выбрать значок COM Object на странице ActiveX. В результате будет открыт диалог установки начальных параметров нового объекта: в поле ввода текста «Class Name» необходимо ввести имя нового класса, выбор в списке «Instancing» в данном случае не имеет значения, выбор в списке «Threading Model» – желательно Apartment, флажок «Include Type Library» необходимо включить.

3 С использованием редактора библиотеки типов выполнить описание интерфейса СОМ-объекта.

4 Выполнить реализацию методов интерфейса согласно индивидуальному заданию (см. лабораторную работу №1).

5 Откомпилировать СОМ-сервер в виде DLL-библиотеки. Зарегистрировать сервер в реестре операционной системы.

6 Создать проект клиентского приложения, реализующего функциональность согласно индивидуального задания и вызывающего методы созданного СОМ-сервера. Выполнить импортирование библиотеки типов в программный модуль, содержащий описание разработанного интерфейса, и подключить его к разрабатываемому приложению.

7 В ходе защиты лабораторной работы необходимо продемонстрировать знания основ технологии СОМ, классов и интерфейсов, создаваемых при ее реализации.

Соседние файлы в предмете Кросс-платформенное программирование