Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОП__подготовка.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
42 Кб
Скачать
☆
  1. Разработка динамических библиотек с явным связыванием: создание библиотеки, использование, распространение библиотек, достоинства и недостатки.

Динамическая библиотека - Часть основной программы, которая загружается в ОС по запросу работающей программы в ходе её выполнения, то есть динамически.

Динамические библиотеки должны быть созданы как специальный проект, который содержит экспортируемые функции, подключаемые на разных этапах выполнения программы.

Один и тот же набор функций (подпрограмм) может быть использован сразу в нескольких работающих программах, из-за чего они имеют ещё одно название — библиотеки общего пользования.

Динамические библиотеки хранятся обычно в определенном месте и имеют стандартное расширение.

Существует два способа подключения динамических библиотек:

  • С неявным подключением (Implicit Linking)

  • С явным подключением (Explicit Linking)

Для того, чтобы объявить элементы библиотеки, доступные для использования другими компонентами. Они либо помечаются объявлениями

Недостатки (явное)

    • Код клиента сильно изменяется

    • в случае, если модуль, который содержит в себе критическую часть, отсутствует, программа не сможет продолжить работу.

Достоинства

  • Вызываются нужные компоненты в нужное время

  • Если динамическая библиотека загружена в адресное пространство самой ОС (System Library), то единственная копия может быть использована множеством работающих с нею программ.

  • Динамическая библиотека может быть использована в качестве плагина, расширяющего функциональность программы.

В начало

  1. Разработка клиентов динамических библиотек с явным связыванием. Функции, используемые для разработки клиента. Функция DllMain().

При разработке с явным связыванием библиотека загружается не автоматически, а по команде из кода именно тогда, когда это необходимо.

Для загрузки библиотеки используется функция LoadLibrary(). Эта функция возвращает значение HMODULE – указатель на библиотеку в памяти.

Для выгрузки библиотеки из файла и освобождения ресурсов, занимаемых библиотекой используется функция FreeLibrary. Как аргумент эта функция получает HMODULE.

Для нахождения адреса нужной функции используется функция GetProcAddress. GetProcAddress возвращает указатель на функцию в библиотеки. Ей передаётся HMODULE и строка с именем функции.

Функция DllMain - дополнительная точка входа в динамически-подключаемую библиотеку (DLL). Если функция используется, то она вызывается системой тогда, когда процессы и потоки инициализированы и завершили работу или при вызове функции LoadLibrary и FreeLibrary.

В начало

  1. Основы com: понятие клиент-серверных систем, этапы взаимодействия клиента и сервера. Задачи, решаемые в com-технологии.

COM-технология – одна из технологий компонентного программирования под Windows.

COM- Component Object Model – модель компонентных объектов.

Клиент-сервер— вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами.

Этапы

1)Создание компонента с помощью функции CreateInstance(), который возвращает указатель на компонент.

2)При помощи метода QueryInterface() запросить указатель на нужный интерфейс

3)Получив указатель на интерфейс, вызываем его методы.

В COM-технологии обеспечивается взаимодействие компонента на уровне двоичных кодов.

Для этого компилятор создаёт двоичную структуру, при помощи которой реализуется абстрактный базовый класс.

В начало