Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по дисциплине Объектно-ориентирован...doc
Скачиваний:
33
Добавлен:
01.07.2025
Размер:
14 Мб
Скачать
☆

4. Технология применения объектов com, dcom

Объект COM (Component Object Model) представляет собой объект (ЕХЕ или DLL-файл) со своими свойствами и методами, который распространяется и встраивается (подобно компоненту) в приложение. Объекты Distributed COM (DCOM) дополнительно обеспечивают распределенную обработку в сети.

При создании приложения СОМ используются следующие понятия.

Интерфейс СОМ описывает методы и свойства, доступные клиентам через механизм публикации (регистрации в операционной системе). Базовый интерфейс имеет имя lunknonw, и его характеристики наследуются интерфейсами-потомками (имена интерфейсов начинаются с "I"). Каждый интерфейс имеет уникальный глобальный идентификатор длиной 16 байтов (GUIID), а каждый интерфейс в объекте СОМ имеет идентификатор интерфейса IID на основе GUID. Благодаря наличию стандартных интерфейсов объект СОМ может быть реализован на любом языке.

Сервер СОМ представляет собой модуль (ЕХЕ или DLL) с программным кодом объектов СОМ. При обращении к серверу передается идентификатор GUID класса CLSID. Сервер создает специальный объект (фабрику классов ICLassFactory), который занимается созданием и загрузкой экземпляра нужного объекта СОМ.

Клиент СОМ является программой, обращающейся к серверу СОМ.

Рис. 81. Создание объекта COM

Пример создания объекта СОМ с методом умножения двух чисел. Выполним команду File/New/ActiveX/ActiveX Library. Добавим объект СОМ командой File/New/ActiveX/COM Object и настроим создаваемый объект (рис. 22) способ создания объекта Multiple instance (создание нескольких объектов), способ обращения к интерфейсу Apartment (для каждого объекта создается поток), краткое описание интерфейса (Description). После нажатия кнопки ОК формируются интерфейс и описание класса TMyObject и появляется окно редактора библиотеки.

2. Окно редактора библиотеки можно вызвать и командой View/Type Library. Левая часть окна содержит дерево объектов, интерфейсов и методов. Выделим строку ImyObject, нажмем кнопку New Method и введем имя создаваемого метода GetMulti. Перейдем на страницу Parameters и кнопкой Add введем два параметра и укажем их имена и типы (рис.82).

Рис. 82. Задание параметров метода GetMulti в интерфейсе объекта СОМ

Кнопкой New Property можно создать новые свойства объекта.

Нажмем кнопку Refresh для обновления реализации.

Перейдем в модуль Unitl и заполним тело метода кодом:

function TMyObject.GetMulti(X, Y: Single): Single;

begin

ResuIt:=X*Y;

end;

Перейдем в редактор библиотеки и нажмем кнопку Register. В результате выполняется компиляция, создается модуль Project_TLB.Pas, библиотека Project1.DLL и содержащийся в ней сервер СОМ регистрируется в системе. Закроем проект.

Для отладки объекта СОМ создадим новый проект (клиент СОМ) в другой палке (рис. 83).

Рис. 83. Тестирующая программа

Откорректируем модуль Unitl. В строку Uses добавим модуль РrоjectI_TLB с описанием интерфейса. В подразделе Public раздела Туре объявим глобальные переменные: UkazIUnknow, UkazIMyObject: IMyObject,

Добавим процедуру создания формы для установки связи с сервером:, procedure TForml.FormCreatefSender: TObject);

begin // создание подкласса Со с описанием общего интерфейса lUnknow UkazIUnknow:=CoMyObject.Create; //указатель интерфейса lUnknow

// формирование указателя на интерфейс IMyObject UkazI Unknow.QueryInterface(IMyObject,UkazIMyObject);

end;

Составим процедуру нажатия кнопки Перемножить.

procedure TForml.Button IClickfSender: TObject);

begin

Labell.Caption:=FloatToStr(UkazIMyObject.GetMuIti (StrToFIoat (Bditl.Text), StrToFloat(Edit2.Text))); end;

Выполним приложение.

Контрольные вопросы:

  1. Дайте понятие внедренным объектам.

  2. Дайте определение автоматизации OLE.

  3. На чем основывается технология COM?

  4. Какие компоненты применяются для того, чтобы использовать технологию OLE в проекте?

  5. Сформулируйте понятия сервера и клиента технологии COM.

Самостоятельная работа: Создать объект COM.

Рекомендации по выполнению самостоятельной работы: см. разобранный выше пример.

Рекомендуемая литература: 1.1, 1.6, 1.10.