
- •Оглавление
- •1. Интерфейс графического устройства gdi. Обработка сообщений wm_paint.
- •2. Обмін інформацією між процесами та потоками. Обмін даними за допомогою файлів.
- •3.Створити програму у Windows (Win32 api), яка виводе одне (головне) вікно.
- •4. Обмін інформацією між процесами та потоками. Обмін повідомленнями.
- •5. Створити програму у Windows (Win32 api), яка демонструє основні стилі вікон (вікно верхнього рівня, спливаюче вікно з головним вікном та без нього, дочірнє вікно).
- •6. Процеси та потоки. Створення процесу. Створення потоку
- •7. Створити програму у Windows (Win32 api), яка забезпечує при отриманні повідомлення wm_paint вивід текстових строк у вікно.
- •8) Створити програму у Windows (Win32 api), яка забезпечує при отриманні повідомлення wm_paint вивід різноманітних типів ліній у вікно.
- •9. Робота з файлами. Асинхронні операції з файлами.
- •10. Створити простішу програму у Windows (Win32 api), яка забезпечує при отриманні повідомлення wm_paint вивід простих геометричних фігур у вікно.
- •11. Створити програму у Windows (Win32 api), яка забезпечує обробку повідомлень wm_paint, wm_destroy, wm_create, wm_command. Другі повідомлення передати на обробку стандартній функції вікна.
- •№ 12 Стандартні елементи керування. Графічний список. Індикатор прогресу. Складальний лічильник.
- •13. Створити простішу програму у Windows (Win32 api), яка забезпечує обробку повідомлень миші (wm_lbuttondown, wm_rbuttondown) у вікні.
- •15. Базові команди. Класифікація команд. Команди передачі даних. Команди обміну процесора з пам'яттю. Команди передачі кодів між процесором і периферією.
- •16. Команди обробки даних. Базові арифметичні команди.
- •17. Створити програму у Windows (Win32 api), яка забезпечує обробку повідомлень клавіатури (wm_keyup, wm_keydown) у вікні.
- •18. ВікнаWindows.Процедура створенняд очірнього вікна. Повідомлення wm_create.
- •19. Створити програму у Windows (Win32 api), яка забезпечує роботу з таймером.
- •20.Таймери Windows і служба часу.
- •24. Інтерфейс графічних пристроїв gdi. Обробка повідомлень wm_paint.
- •26. Створити простішу програму у Windows (Win32 api), яка забезпечує роботу з стандартним елементом керування - графічний список.
- •27. Основи розробки Windows-додатків. Головна функція WinMain(). Повідомлення Windows.
- •29 Створити програму у Windows (Win32 api), яка забезпечує роботу з стандартним елементом керування - набірний лічильник.
9. Робота з файлами. Асинхронні операції з файлами.
Асинхронные операции с файлами Одной из привлекательных черт 32-разрядного программирования является концепция параллельных процессов, реализуемая различными методами. В одних случаях (организация параллельных потоков) параллельность заключается в том, что управление периодически, через определенные кванты времени, передается от одной ветви программык другой по кругу. В результате все ветви выполняются как бы одновременно, хотя, разумеется, общее время, требуемое для выполнения каждой ветви, увеличивается. Такая методика особенно эффективна при использовании нескольких процессоров, хотя и в однопроцессорной вычислительной системе она может приводить к повышению производительности. В других случаях положительный эффект достигается за счет того, что параллельные действия выполняются различными элементами аппаратного обеспечениякомпьютера. Так, чтение данных из файла - наиболее медленная операция в современных компьютерах - осуществляется в значительной степени аппаратурой контроллера диска, работающего в режиме прямого доступа. Занятость в этой операции процессора незначительна, однако в 16-разрядных приложениях программа, выдавшая запрос на чтение данных из файла (или запись данных в файл), останавливается до завершения этойоперации, хотя в течение всего этого времени процессор почти свободен и мог бы выполнять полезную работу.
Такой режим выполнения программы, когда программа приостанавливается на времяоперации ввода-вывода, носит название синхронного или режима с ожиданием; если жепрограмма, поставив запрос на ввод-вывод, может продолжить свое выполнение, то такой режим называется асинхронным или режимом с перекрытием. В настоящем разделе будут рассмотрены основы организации асинхронного режимаприменительно к операциям с файлами.
Программа 11-2. Асинхронные операция с файлом*/ •include<windows.h> constint N=0x100000;//Количество данных в файле /•Главная функция WinMainO*/ int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ charszFileName[]="Test.dat";//Имя создаваемого файла charszT[1001;//Для формирования выводимого сообщения DWORD dwCount;//Для операций записи/чтения файла
Открытие и закрытие файла Перед тем как начать работать с файлом, программа должна либо его создать заново, либо открыть, если он был создан ранее. И та и другая операция выполняются в Win32 с помощью одной универсальной функции - CreateFile(). При успешном выполнении эта функция возвращает 32-разрядный дескриптор файла типа HANDLE, через который по- том и выполняются все операции с данным файлом. Если файл открыть не удалось, функция CreateFile() возвращает OxFFFFFFFF (-1). Функция CreateFile()HMeeT следую- щий прототип: HANDLE CreateFile( LPCTSTR lpFileName,//Адрес спецификации файла DWORD dwDesiredAccess,//Режим доступа DWORD dwShareMode,11 Режим разделения LPSECURITY_ATTRIBUTES lpSecurityAttributes,//Адрес дескриптора запщты DWORD dwCreationDistribution,//Режим открытия DWORD dwFlagsAndAttributes,//Атрибуты файла HANDLE hTemplateFile //Дескриптор открытого файла-шаблона )
Запись и чтение файла При работе с данными, содержащимися в файле, чаще других используются 3 функции: записи в файл WriteFile(), чтения из файла ReadFileO и установки файлового указателя SetFilePointer(). Функции чтения и записи имеют фактически одинаковые прототипы: BOOL ReadFile(HANDLE hFile,LPVOIDlpBuffer,DWORDnNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead,LPOVERLAPPEDlpOverlapped); BOOL WriteFile(HANDLE hFile,LPCVOIDlpBuffer,DWORDnNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten,LPOVERLAPPEDlpOverlapped);