
- •Введение
- •1 Аналитический обзор состояния вопроса
- •1.1 Краткие сведения о dll
- •1.2 Общие сведения о bmp - файлах
- •1.3 Dib и ddb файлы
- •1.4 Обзор структуры файла
- •1.4.3 Палитра
- •1.4.4 Данные изображения
- •1.5 Дамп памяти
- •2 Постановка задачи
- •3 Проектирование программного обеспечения
- •3.1 Выбор среды разработки динамической библиотеки
- •3.2 Проектирование структуры Dll
- •3.3 Макет интерфейса
- •3.4 Проектирование алгоритмов
- •4.4 Реализация алгоритма сохранения данных в файл
- •5 Тестирование программного обеспечения
- •5.1 Сравнение выводимых данных
- •5.2 Тест на корректность работы диалогов
- •Заключение
- •Список использованной литературы
- •Список листов графической части
- •Приложение а
- •Приложение б
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 5
1 АНАЛИТИЧЕСКИЙ ОБЗОР СОСТОЯНИЯ ВОПРОСА 6
1.1 Краткие сведения о DLL 6
1.2 Общие сведения о bmp - файлах 6
1.3 DIB и DDB файлы 7
1.4 Обзор структуры файла 7
1.4.1 BITMAPFILEHEADER 8
1.4.2 BITMAPINFOHEADER 8
1.4.3 Палитра 10
1.4.4 Данные изображения 10
1.5 Дамп памяти 11
2 ПОСТАНОВКА ЗАДАЧИ 12
3 ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 13
3.1 Выбор среды разработки динамической библиотеки 13
3.2 Проектирование структуры Dll 14
3.3 Макет интерфейса 14
3.4 Проектирование алгоритмов 15
4 РЕАЛИЗАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 17
4.1 Физическая структура проекта 17
4.2 Разработанный интерфейс приложения 17
4.3 Реализация алгоритма отображения структуры bmp-файла 18
4.4 Реализация алгоритма сохранения данных в файл 20
5 ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 22
5.1 Сравнение выводимых данных 22
5.2 Тест на корректность работы диалогов 23
ЗАКЛЮЧЕНИЕ 25
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 26
СПИСОК ЛИСТОВ ГРАФИЧЕСКОЙ ЧАСТИ 27
ПРИЛОЖЕНИЕ А 28
ПРИЛОЖЕНИЕ Б 35
Введение
Программисты всех стран уже более 30 лет борются с проблемой многоразового использования однажды написанного кода. Так уж повелось, что 30-50% кода в простых офисных приложениях схожи между собой или решают одни и те же задачи. Ни один программист не захочет каждый раз снова писать один и тот же код. Как хорошо, когда можно использовать один раз написанный код многократно. Самым первым решением этой проблемы стало модульное кодирований или создание библиотек динамических. Ты пишешь какой-то кусок кода, оформляешь его в виде DLL, а потом просто используешь в своих программах. Все прекрасно и удобно, а главное, что все довольны[8].
Частным случаем является создание DLL для просмотра структуры файла формата bmp, что и стало темой моего курсового проекта.
Записка курсового проекта имеет 5 разделов. Структура и описание данных разделов:
«Аналитический обзор состояния вопроса» - в данном разделе размещены краткие теоретические сведения;
«Постановка задачи» - в данном разделе находятся цели курсового проекта с описанием поставленных задач;
«Проектирование программного обеспечения» - в данном разделе описывается разработка программного продукта: разработка интерфейса программы, схемы алгоритмов, архитектура приложения;
«Реализация программного обеспечения» - в данном разделе описана программная реализация работы со структурой bmp - файла, перечислены основные функции программы, а также приведены коды реализации с их описанием;
«Тестирование программы» - в данном разделе описана работа программы, проведена проверка на правильность работы функций.
1 Аналитический обзор состояния вопроса
1.1 Краткие сведения о dll
DLL(Dynamic Link Library) – часть основной программы, которая загружается в ОС по запросу работающей программы в ходе её выполнения (Run-time), т.е. динамически. Один и тот же набор функций (подпрограмм) может быть использован сразу в нескольких работающих программах, из-за чего они имеют ещё одно название — библиотеки общего пользования (Shared Library). Если динамическая библиотека загружена в адресное пространство самой ОС (System Library), то единственная копия может быть использована множеством работающих с нею программ, что положительно сказывается на степени использовании ресурса ОЗУ. Динамические библиотеки могут содержать в себе как критические для работы программы части, так и дополнительные функции. Дополнительным плюсом такого подхода является то, что динамическая библиотека может быть использована в качестве плагина (Plug-ins), расширяющего функциональность программы. Минусом является то, что в случае, если модуль, который содержит в себе критическую часть, отсутствует, программа не сможет продолжить работу.
Динамические библиотеки хранятся обычно в определенном месте и имеют стандартное расширение. Например, файлы .library в логическом томе Libs: в AmigaOS; в Microsoft Windows и OS/2 файлы библиотек общего пользования имеют расширение .dll; в UNIX‐подобных ОС — обычно .so; в Mac OS — .dylib.
При написании программы программисту достаточно указать транслятору (компилятору или интерпретатору) языка программирования, что следует подключить нужную библиотеку и использовать функцию из неё. Ни исходный текст, ни исполняемый код функции в состав программы на данном этапе не входит[3].