Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методическое пособие по СПр.doc
Скачиваний:
7
Добавлен:
16.12.2018
Размер:
690.69 Кб
Скачать

1.6.2 Ход выполнения работы

  1. Выполнить учебный проект к данной лабораторной работе. Учебный проект состоит из клиентского приложения ClientInProcCOM, содержание которого приведено ниже, и внутреннего сервера в виде библиотеки InProcCOM. Проанализировать структуру программного обеспечения с точки зрения технологии СОМ.

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

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

  4. После закрытия предыдущего диалога появится окно редактирования библиотеки типов (Type Library), в котором в левой части будет представлено иерархическое дерево модулей, объектов и интерфейсов данного сервера, а в правой части – закладки с их свойствами. Интерфейс INew, наследник интерфейса IUnknown, будет создан автоматически. Щелчком правой кнопки мыши на интерфейсе создать метод (функцию), при необходимости задать на закладке Parameters с помощью кнопки Add параметры, которые необходимо в функцию передавать при ее вызове. При внесении изменений в библиотеку типов автоматически будут вноситься изменения в основной модуль проекта в разделе описания класса TNew (будут добавлены объявления методов) и в разделе реализации (будут добавлены заготовки методов). Вариант библиотеки типов на Object Pascal сохраняется в файле с расширением PAS и окончанием _TLB в названии. При возникновении вопросов откройте библиотеку типов учебного проекта и сравните свои результаты с ее содержимым и с содержимым основного модуля проекта.

  5. Введите тела созданных методов. Методы должны выполнять ваше индивидуальное задание из предыдущих лабораторных работ – возвращать требуемые данные, полученные с помощью функций Windows API. Откомпилируйте созданную DLL-библиотеку. Зарегистрируйте созданные структуры данных и библиотеку типов в реестре ОС с помощью кнопки Register Type Library редактора библиотеки типов или с помощью команды Register ActiveX Server меню Run Delphi. После вызова такая динамическая библиотека подгружается и работает как внутренний сервер СОМ.

  6. Создайте проект клиентского приложения. Добавьте в предложение Uses модуль *_TLB из проекта DLL-библиотеки. Добавьте в форму в раздел описания public свойства с типом данных соответствующих интерфейсов созданного вами СОМ объекта. В обработчик события OnShow формы добавьте вызов следующих методов (см. учебный проект):

Interface1 := CoSimpleCOM.Create;

Interface1.QueryInterface(ISimpleCOM2, Interface2);

. . . . . . . . . . . . . . . . . . . . . . . . . .

Затем добавьте вызов методов созданного вами СОМ объекта. Откомпилируйте клиентское приложение и проверьте правильность функционирования технологии СОМ в ваших проектах.

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