- •Содержание
- •2 Вопросы для текущего контроля знаний по темам 70
- •Введение
- •1 Разработка приложений с элементами системного программирования на основе использования технологий межпрограммного обмена данными
- •1.1 Лабораторная работа №1. Обмен данными между потоками с использованием сообщения wm_copydata
- •Краткие теоретические сведения
- •1.1.2 Ход выполнения работы
- •1.1.3 Задание на лабораторную работу 1
- •Варианты индивидуального задания
- •1.1.4 Контрольные вопросы к лабораторной работе 1
- •1.2 Лабораторная работа №2. Обмен данными между приложениями с использованием технологии динамического обмена данными – Dynamic Data Exchange (dde)
- •1.2.1 Краткие теоретические сведения
- •Глобальные данные
- •Посылка и прием данных
- •Завершение сеанса
- •Компонент tddeServerConv
- •Компонент tddeServerItem
- •Компонент tddeClientItem
- •1.2.2. Ход выполнения работы
- •1.2.3 Задание на лабораторную работу 2
- •1.2.4 Контрольные вопросы к лабораторной работе 2
- •1.3 Лабораторная работа №3. Обмен данными между приложениями с использованием технологии динамического обмена данными с помощью файлов, отображаемых в память
- •1.3.1 Краткие теоретические сведения Создание объекта файлового отображения
- •Совместное использование отображаемых данных
- •1.3.2 Ход выполнения работы
- •1.3.3 Задание на лабораторную работу 3
- •1.3.4 Контрольные вопросы к лабораторной работе 3
- •1.4 Лабораторная работа №4. Обмен данными между приложениями с использованием технологии динамического обмена данными с помощью сокетов
- •1.4.1 Краткие теоретические сведения Сокеты
- •1.4.2 Ход выполнения работы
- •1.4.3 Контрольные вопросы к лабораторной работе 4
- •1.5 Лабораторная работа №5. Обмен данными между приложениями с использованием технологии динамического обмена данными с помощью именованных каналов
- •1.5.1 Краткие теоретические сведения Каналы
- •1.5.2 Ход выполнения работы
- •1.5.3 Контрольные вопросы к лабораторной работе 5
- •1.6 Лабораторная работа №6. Использование технологии сом при разработке приложений в Delphi. Создание и использование внутреннего сервера
- •1.6.1 Краткие теоретические сведения
- •1.6.2 Ход выполнения работы
- •1.6.3 Контрольные вопросы к лабораторной работе 6
- •2 Вопросы для текущего контроля знаний по темам
- •Список литературы
- •107/2009. Підп. До друку 25.12.09. Формат 60 х 84/8.
- •84313, М. Краматорськ, вул. Шкадінова, 72.
1.6.2 Ход выполнения работы
-
Выполнить учебный проект к данной лабораторной работе. Учебный проект состоит из клиентского приложения ClientInProcCOM, содержание которого приведено ниже, и внутреннего сервера в виде библиотеки InProcCOM. Проанализировать структуру программного обеспечения с точки зрения технологии СОМ.
-
Создать внутренний сервер в виде динамической библиотеки, для чего выбрать на странице ActiveX Репозитория Delphi значок ActiveX Library, в результате чего будет создан новый проект DLL-библиотеки.
-
Из Репозитория выбрать значок COM Object на странице ActiveX. В результате будет открыт диалог установки начальных параметров нового объекта: в поле ввода текста Class Name необходимо ввести имя нового класса (например, New), выбор в списке Instancing в данном случае не имеет значения, выбор в списке Threading Model – желательно Apartment, флажок Include Type Library необходимо включить.
-
После закрытия предыдущего диалога появится окно редактирования библиотеки типов (Type Library), в котором в левой части будет представлено иерархическое дерево модулей, объектов и интерфейсов данного сервера, а в правой части – закладки с их свойствами. Интерфейс INew, наследник интерфейса IUnknown, будет создан автоматически. Щелчком правой кнопки мыши на интерфейсе создать метод (функцию), при необходимости задать на закладке Parameters с помощью кнопки Add параметры, которые необходимо в функцию передавать при ее вызове. При внесении изменений в библиотеку типов автоматически будут вноситься изменения в основной модуль проекта в разделе описания класса TNew (будут добавлены объявления методов) и в разделе реализации (будут добавлены заготовки методов). Вариант библиотеки типов на Object Pascal сохраняется в файле с расширением PAS и окончанием _TLB в названии. При возникновении вопросов откройте библиотеку типов учебного проекта и сравните свои результаты с ее содержимым и с содержимым основного модуля проекта.
-
Введите тела созданных методов. Методы должны выполнять ваше индивидуальное задание из предыдущих лабораторных работ – возвращать требуемые данные, полученные с помощью функций Windows API. Откомпилируйте созданную DLL-библиотеку. Зарегистрируйте созданные структуры данных и библиотеку типов в реестре ОС с помощью кнопки Register Type Library редактора библиотеки типов или с помощью команды Register ActiveX Server меню Run Delphi. После вызова такая динамическая библиотека подгружается и работает как внутренний сервер СОМ.
-
Создайте проект клиентского приложения. Добавьте в предложение Uses модуль *_TLB из проекта DLL-библиотеки. Добавьте в форму в раздел описания public свойства с типом данных соответствующих интерфейсов созданного вами СОМ объекта. В обработчик события OnShow формы добавьте вызов следующих методов (см. учебный проект):
Interface1 := CoSimpleCOM.Create;
Interface1.QueryInterface(ISimpleCOM2, Interface2);
. . . . . . . . . . . . . . . . . . . . . . . . . .
Затем добавьте вызов методов созданного вами СОМ объекта. Откомпилируйте клиентское приложение и проверьте правильность функционирования технологии СОМ в ваших проектах.
-
В ходе защиты лабораторной работы необходимо продемонстрировать знания основ технологии СОМ, классов и интерфейсов, создаваемых при ее реализации.