Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
System programming / Методические указания / Методичка к лабораторным работам (рус).doc
Скачиваний:
52
Добавлен:
08.05.2015
Размер:
218.11 Кб
Скачать

7.4. Задание на лабораторную работу

Вариант 1

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

Вариант 2

Написать простейший многооконный текстовый редактор, позволяющий вводить текст, сохранять его на диске в формате *.txt и читать в новое окно приложения.

Вариант 3

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

Вариант 4

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

Вариант 5

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

Вариант 6

Написать простой многооконный графический редактор, позволяющий при помощи мыши рисовать полигоны. Точки задаются левой клавишей мыши, последняя точка полигона – по нажатию правой клавиши мыши. Редактор должен иметь возможность записи и чтения изображения в метафайл.

Вариант 7

Написать многооконное приложение, которое позволяет открывать от 1 до 8 дочерних окон. Все окна при создании имеют собственный оригинальный заголовок. Реализовать возможности упорядочения дочерних окон: показать все окна, «черепица», выбрать окно из списка.

Вариант 8

Написать простейший многооконный «просмотрщик» текстовых файлов. Организовать скроллинг текста.

Вариант 9

Написать многооконный «просмотрщик» графических файлов битового формата. Организовать скроллинг изображений.

8.5. Контрольные вопросы и задания

  1. Охарактеризуйте элементы MDI.

  2. Приведите иерархию родительских и дочерних окон приложения MDI в Windows.

  3. Каким образом создаются дочерние окна программы?

  4. Какими сообщениями обмениваются родительские и дочерние окна?

  5. Какими сообщениями обмениваются активное дочернее окно и окно-администратор при закрытии активного окна MDI – приложения?

  6. Приведите примеры использования многооконных приложений.

9. РАЗРАБОТКА ДИНАМИЧЕСКИ ПОДКЛЮЧАЕМЫХ БИБЛИОТЕК

9.1. Цель работы

Ознакомление с одним из наиболее важным структурным элементом Windows - библиотеками динамической компоновки (Dynamic Link Libraries, DLL), получение практических навыков по созданию динамических библиотек.

9.2. Указания по подготовке к выполнению лабораторной работы

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

При подготовке к работе необходимо изучить конспект лекций по указанной теме, методические указания, а также разделы, указанные в [16, c.986-1013].

9.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, LoadLibraryEx.

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