Uploaded by Наталья Морозова

Практическое занятие №16 Создание библиотеки подпрограмм

Практическое занятие №16. Создание библиотеки подпрограмм
Цель: Научиться создавать и подключать библиотеки подпрограмм
Ход работы:
Библиотека – это пакет кода, который предназначен для повторного использования
многими программами.
Статическая библиотека (иногда называемая archive, «архив») состоит из подпрограмм,
которые скомпилированы и линкуются непосредственно с вашей программой.
Когда вы компилируете программу, использующую статическую библиотеку, все
функции статической библиотеки, которые использует ваша программа, становятся частью
вашего исполняемого файла.
В Windows статические библиотеки обычно имеют расширение .lib, а в Linux –
расширение .a (archive, архив).
Одним из преимуществ статических библиотек является то, что вам нужно распространять
только исполняемый файл, чтобы пользователи могли запускать вашу программу. Поскольку
библиотека становится частью вашей программы, это гарантирует, что с вашей программой
всегда будет использоваться правильная версия библиотеки. Кроме того, поскольку статические
библиотеки становятся частью вашей программы, вы можете использовать их так же, как
функции, которые вы написали для своей программы.
С другой стороны, поскольку копия библиотеки становится частью каждого исполняемого
файла, который ее использует, это может привести к потере большого количества места.
Статические библиотеки также не могут быть легко обновлены – для обновления библиотеки
необходимо заменить весь исполняемый файл.
Динамическая библиотека (также называемая shared library, «общая библиотека»)
состоит из подпрограмм, которые загружаются в ваше приложение во время выполнения.
Когда вы компилируете программу, использующую динамическую библиотеку,
библиотека не становится частью вашего исполняемого файла – она остается отдельной
единицей.
В Windows динамические библиотеки обычно имеют расширение .dll (dynamic link library,
библиотека динамической компоновки), а в Linux – расширение .so (shared object, общий объект).
Одним из преимуществ динамических библиотек является то, что многие программы
могут совместно использовать одну копию библиотеки, что экономит место. Возможно, большим
преимуществом является то, что динамическую библиотеку можно обновить до более новой
версии без замены всех исполняемых файлов, которые ее используют.
Создание клиентского приложения
Создаем новое решение и выбираем Консольное приложение. Назовем его myClient.
Создайте пустой проект библиотеки классов
В обозревателе решений нажмите правой кнопкой мышки на решении и выберите пункт Add -> New
Project...
Выбираем С# -> Class Library. Назовем библиотеку myLib
В созданном проекте библиотеки находим файл MyClass.cs. Открываем его и в класс MyClass
добавим метод Add.
Добавим ссылку на библиотеку myLib в проект myClient. Нажмите правой кнопкой мыши на
References и выберите пункт Add Reference.
В меню Projects добавьте ссылку на myLib.
Попробуем вызвать метод Add класса MyClass из библиотеки myLib. (Не забудьте подключить
пространство имен myLib)
Задание 1. Реализуйте приведенный в ходе работы пример. Проверьте его работоспособность.
Задание 2. Разработать консольное приложение по работе со стеком с приведенным на
рисунках интерфейсом. Реализовать программу на основе подключаемой dll.
Контрольные вопросы:
1. Что такое библиотека подпрограмм?
2. Что такое статическая и динамическая библиотека, в чем между ними отличия?