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

1. Понятие компонента. Преимущества и недостатки использования компонентного подхода к проектированию программ. 2

2. Использование статических библиотек к проектированию программ: создание библиотеки, использование, распространение библиотек, достоинства и недостатки. 3

3. Динамические библиотеки с неявным связыванием: создание библиотеки, использование, распространение библиотек, достоинства и недостатки. 3

4. Разработка динамических библиотек с явным связыванием: создание библиотеки, использование, распространение библиотек, достоинства и недостатки. 4

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

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

7. Именование COM-объектов. GUID. Использование GUID. Хранение GUID в системе. 6

8. Теория интерфейсов. Виртуальная функция. Таблица виртуальных функций. Интерфейс IUnknown. 7

9. Интерфейс IUnknown. Метод QueryInterface(): параметры, возвращаемое значение, пример использования. Использование QueryInterface(). 8

10. Реализация метода QueryInterface(). Правила использования QueryInterface(). 9

11. Время жизни компонента. Метод AddRef() и Release(). Правила подсчета ссылок. 9

12. Время жизни компонента. Метод Release(). Правила подсчета ссылок. 10

13. Реализация компонента в виде динамической библиотеки. Диаграмма компонент. 11

14. Обработка ошибок в COM. HRESULT. Макросы SUCCEDEED() и FAIL(). 11

15. Хранение GUID в реестре. Информация о классе, хранимая в реестре. Инициализация COM-библиотеки в клиенте. 12

16. Создание объектов при помощи функции CoCreateInstance(). Использование. Достоинства, недостатки. 12

17. Фабрика классов. Интерфейс IClassFactory(). Методы этого интерфейса. Метод GetClassObject(). 12

18. Фабрика классов. Протокол использования фабрики классов с использованием интерфейса IClassFactory(). 13

19. Функции, обеспечивающие работу динамической библиотеки с компонентом. 13

20. Регистрация классов в реестре. Способы регистрации компонент в реестре. 14

Динамическая библиотека с явным подключением 14

Динамическая библиотека с неявным подключением 15

Клиентская часть компонента 15

Динамическая библиотека 16

Статическая библиотека 16

  1. Понятие компонента. Преимущества и недостатки использования компонентного подхода к проектированию программ.

Компонент — в программировании, множество языковых конструкций (например, классов в ООП языках), объединенных по общему признаку. В большинстве языков программирования нет языковых конструкций прямо отражающих понятие компонента. Компоненты реализуются с помощью стандартных конструкций, таких как классы.

Компонент – это класс, который множественно наследует интерфейсы.

Компонент – двоичный код, готовый к выполнении.

Компонентный подход программирования широко поддерживается фреймворками (программными каркасами).

  • Компонент — «независимый модуль программного кода, предназначенный для повторного использования и развертывания».

  • Может содержать «множественные классы».

  • Как правило, независим от конкретного языка.

Преимущества

  • Компонет можно распределять по сети и разрабатывать на заказ.

  • Можно разрабатывать универсальные библиотеки компонентов, которые используются повторно.

  • Можно использовать библиотеки компонентов для быстрой разработки.

  • Легче адаптировать приложения, поскольку для изменения нужно модифицировать нужный компонент

Недостатки

  • Используя компонент как готовый элемент, нужно разработать программное обеспечение с учётом его особенностей. Невозможно поменять компонент под нужды конкретной программы.

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

  • Часто содержит избыточную функциональность для конкретной программы.

  • Может бать не оптимален с точки зрения используемы ресурсов.

В начало

  1. Использование статических библиотек к проектированию программ: создание библиотеки, использование, распространение библиотек, достоинства и недостатки.

Статическая библиотека – исполнимый код и таблица точек кода, которые позволяют вызвать те или иные методы.

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

Достоинства

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

Недостатки

Файлы получаются большими, так как каждый исполнимый файл включает в себя все свои библиотеки.

В начало

  1. Динамические библиотеки с неявным связыванием: создание библиотеки, использование, распространение библиотек, достоинства и недостатки.

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

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

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

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

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

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

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

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

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

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

    • Медленная загрузка

    • Загружаются все .dll, а используются только некоторые

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

Достоинства

  • Текст клиента не изменится

  • Код проще

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

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

В начало