У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 9 динамически подключаемые библиотеки DLL И потоковая многозадачность в Win32 Цель р

Работа добавлена на сайт samzan.net: 2016-03-30

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 4.4.2025

Лабораторная работа №9

динамически подключаемые библиотеки (DLL) И потоковая многозадачность в Win32

Цель работы: изучить возможности создания программ с использованием динамически подключаемых библиотек и организации многопоточного режима выполнения программ в Win32.

Ход работы

При подготовке к лабораторной работе самостоятельно на основе материалов лекций, рекомендованной литературы, справочной системы Win32 API, SDK и MSDN изучить технологию и средства создания и использования динамически подключаемых библиотек (DLL), создания потоков в Win32 а также основных способов синхронизации потоков и обмена данными между потоками. При этом изучить назначение таких функций и соответствующие им структуры данных:

  1.   для явной компоновки, использования и отключения DLL: LoadLibrary(), LoadLibraryEx(), FreeLibrary(), GetModuleHandle(), GetModuleFileName(), DllMain();
  2.   для создания потоков, взаимодействия с ними и уничтожения потоков: CreateThread(), SuspendThread(), ResumeThread(), GetCurrentProcess(), GetCurrentThread(), GetThreadPriority(), SetThreadPriority(), ExitThread(), TerminateThread().

3) для синхронизации потоков: WaitForSingleObject(),WaitForMultiplyObjects().

Задание

1. Создать динамическую библиотеку, содержащую рабочую функцию потока, которая:

а) создает окно с кнопками «+», «-», «Уведомить» и «Завершить»;

б) выводит в это окно информацию о времени запуска и продолжительности её работы;

в) при нажатии на кнопку «+» инкрементирует 1 раз в секунду заданную переменную;

г) при нажатии на кнопку «-» декрементирует 1 раз в секунду заданную переменную;

д) отображает значение глобальной переменной в главном окне;

е) при нажатии на кнопку «Уведомить» создает сообщение;

ж) при нажатии на кнопку «Завершить» завершает поток.

2. Создать основную программу, которая должна выполнять следующие функции:

а) предотвращать запуск второй копии программы с использованием мьютексов;

б) содержать главное меню с пунктом «Потоки» и подменю «Поток №1» … «Поток №<n>». Каждый из пунктов «Поток №<i>» должен содержать пункты «Создать», «Запустить», «Приостановить», «Завершить», при выборе которых программа должна выполнять соответствующие действия и отражать изменения состояния потоков в меню;

в) ограничивать количество запускаемых потоков с использованием семафоров.

г) при загрузке программы запустить на выполнение 2 потока из DLL;

д) защищать изменение глобальной переменной с помощью критических секций;

е) получать уведомления от потоков, и выдавать при его получении окно сообщений (MessageBox);

ж) завершаться при завершении всех потоков.

Литература

1. Рихтер Дж. Windows для профессионалов: Программирование для Windows 95 и Windows NT 4 на базе Win32 API / Пер. с англ. – М.: Издательский отдел «Русская редакция» ТОО «Channel Trading Ltd.», 1997. – 712 c.

2. Финогенов К.Г. Win32. Основы программирования. - М.: ДИАЛОГ-МИФИ, 2002. - 416 с.

3. Румянцев П.В. Азбука программирования в Win32 API.

4. Электронный ресурс: www.google.com.




1. а в результате термоэлектронного взрыва холодного твердого металла
2. Аналіз існуючого стану інфляційних процесів в сучасній Україні
3. Перлина країни OPEN 2012 фестиваля восточных танцев Организаторы Фабрика красоты StrFshion школа модел
4. Вариант 19 В задачах 19 найти неопределённые интегралы ответ проверить дифференцированием
5. Реферат- Налогообложение доходов иностранных юридических лиц
6. природа. новый подход к проблеме Л.
7. Участие присяжных заседателей в уголовном производстве
8. тематичне положення і ареал Онтогенез ехінацеї пурпурової Особливості цвітіння і плодоношення Тех
9. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата історичних наук Льві
10. Назовите страны находящиеся в авангарде европейской культуры 17 века