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

8-я Лабораторная работа Вариант1 Вариант2 Вариант3 Вариант4 Вариант5 Вариант6 Вариант7 Вариант8 8.Тема: РАЗРАБОТКА ДИНАМИЧЕСКИ ПОДКЛЮЧАЕМЫХ БИБЛИОТЕК 8.1. Цель работы Ознакомление с одним из наиболее важным структурным элементом Windows - библиотеками динамической компоновки (Dynamic Link Libraries, DLL), получение практических навыков по созданию динамических библиотек. 8.2.Указания по подготовке к выполнению лабораторной работы Необходимо изучить принципы динамического связывания функций и процедур Windows-приложений, обратить внимание на отличие в использовании стандартных статических библиотек функций языков программирования и динамических библиотек системного назначения. При подготовке к работе необходимо изучить конспект лекций по указанной теме, методические указания, а также разделы, указанные в [16, c.986-1013]. 8.3. Обзор темы работы Динамически подключаемые библиотеки (DLL, или динамические библиотеки, или библиотеки динамической компоновки, или модули библиотек) являются одним из наиболее важных структурных элементов Windows. Большинство файлов, из которых состоит Windows, представляют из себя либо программные модули, либо модули динамически подключаемых библиотек. Большая часть принципов, относящихся к написанию программ, вполне подходит и для написания этих библиотек, но есть несколько важных отличий. Термин динамическое связывание (dynamic linking) относится к процессам, которые Windows использует для того, чтобы связать вызов функции в одном из модулей с реальной функцией из модуля библиотек. Статическое связывание (static linking) имеет место в процессе создания программы, когда для создания исполняемого (.exe) файла связываются воедино все объектные (.obj) модули, файлы библиотек (.lib) и, как правило, скомпилированные файлы описания ресурсов (.res). В отличие от этого, динамическое связывание имеет место во время выполнения программы. Файлы KERNEL32.DLL, USER32.DLL, GDI32.DLL, файлы драйверов - все это динамически подключаемые библиотеки. Эти библиотеки можно использовать во всех программах Windows. Динамически подключаемые библиотеки могут содержать только ресурсы либо данные и не содержать программ. Хотя модуль динамически подключаемой библиотеки может иметь любое расширение (например, .exe, .fon), стандартным расширением, принятым в Windows, является .dll. Только те динамически подключаемые библиотеки, которые имеют расширение .dll, Windows загрузит автоматически. Если файл имеет другое расширение, то программа должна загрузить модуль библиотеки явно. Для этого используется функция LoadLibrary. Как правило, наибольший смысл динамически подключаемые библиотеки приобретают в большом приложении, в приложениях использующих большой набор функций, состав и содержание которых может меняться во время эксплуатации и модификации. Кроме того, динамически подключаемые библиотеки сами могут стать ценным продуктом. 8.4. Задание на лабораторную работу Варианты:

Вариант 1

Создать динамически подключаемую библиотеку, содержащую две функции, вычисляющие числа Фибоначчи и n-факториал. Использовать созданную DLL в другой программе.

Вариант 2

Создать динамически подключаемую библиотеку, содержащую графические процедуры: рисования вписанных в прямоугольную область равностороннего пятиугольника и звезды. Прямоугольник задается объектом RECT. Использовать созданную DLL в другой программе.

Вариант 3

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

Вариант 4

Создать динамически подключаемую библиотеку функций поворота изображения на 90, 180, 270 градусов. Использовать созданную DLL в другой программе.

Вариант 5

Создать динамически подключаемую библиотеку математических функций: ХУ, Хn + Xn-1 + .... + X1.Использовать созданную DLL в другой программе.

Вариант 6

Создать динамически подключаемую библиотеку функций поиска минимума и максимума массива целых чисел (в функцию передается указатель на массив и число элементов массива). Использовать созданную DLL в другой программе.

Вариант 7

Создать динамически подключаемую библиотеку функций рисования текстур на основе типа заполнения и параметров заполнения (например, количества точек на единицу площади). Предложить два-три типа текстур. Использовать созданную DLL в другой программе.

Вариант 8

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

Вариант 9

Создать динамически подключаемую библиотеку функций вывода на экран времени в разных форматах (например, в цифровом и аналоговом виде). Использовать созданную DLL в другой программе.

8.5. Контрольные вопросы и задания Для чего используют библиотеки? Поясните разницу между динамическим и статическим связыванием. В чем специфика динамически подключаемых библиотек? В каких целях используется разделяемая память в DLL? Чем отличается динамическое связывание без импорта? Приведите примеры системных DLL. Опишите процесс создания DLL. Вариант1 Вариант2 Вариант3 Вариант4 Вариант5 Вариант6 Вариант7 Вариант8

Соседние файлы в папке Html