Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчеты по Курсовой Работе / Win API Малюшко Д.А. 8-78-1.docx
Скачиваний:
50
Добавлен:
12.03.2015
Размер:
133.95 Кб
Скачать

Министерство образования и науки РФ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Ижевский Государственный Технический Университет

Имени М.Т. Калашникова

Факультет «Информатика и вычислительная техника»

Кафедра «Вычислительная техника»

Курсовая работа по дисциплине

операционные системы

«Программирование в Windows на основе API-функций»

Разработал: студент гр. 8-78-2,

Малюшко Д. А.

Принял: к.т.н. Вахрушева Е.А.

Ижевск 2014 г.

Оглавление

Введение 3

Теоретическая часть 4

Описание функций, использующихся в программах 7

Функция GetModuleHandle 7

Функция GetCommandLine  7

Функция LoadIcon 8

Функция MessageBox 8

Функция Invoke 9

Функция LoadLibrary 18

Функция PostMessage 19

Функция DialogBoxParam 19

Функция ExitProcess 19

Функция FreeLibrary 20

Функция EndDialog 20

Функция GetProcAddress 20

Результат работы 28

Вывод 29

Список литературы 30

Введение

Свыше 90 процентов настольных и портативных компьютеров работают под управлением Windows. Консультант по Windows Джеффри Рихтер считает, что «Microsoft Windows очень сложная операционная система. Она включает столько всего и делает так много, что одному человеку просто не под силу полностью разобраться в этой системе». Курсовая работа посвящена изучению одного из разделов операционной системы.

Самые важные части операционной системы Windowsнаписаны на языке ассемблера. Поэтому операционную системуWindowsнагляднее изучать, используя именно этот язык. Язык ассемблера — это символическое представление машинного языка. Все процессы в машине на самом низком, аппаратном уровне приводятся в действие только командами (инструкциями) машинного языка. Ассемблер может понадобиться для оптимизации кода программ, написания драйверов, трансляторов, программирования некоторых внешних устройств и т.п.

Что касается операционной системы Windows, то здесь, как ни странно это прозвучит для некоторых программистов, программировать на ассемблере гораздо легче, чем в операционной системеMS DOS, и ничуть не сложнее чем на Си, и при этом получается компактный, эффективный и быстрый код. При работе с языками высокого уровня теряются определенные алгоритмические навыки. И процесс заходит всё дальше. Только ради повышения своего профессионального уровня стоит заниматься программированием на ассемблере

Теоретическая часть

С 1991 года операционная система Windows, созданная компанией Microsoft сменила несколько версий. За это время она выпускалась и для 16-разрядных процессоров и для 32-разрядных. А сегодня уже появились версии Windows для работы с 64-разрядными процессорами. Менялся не только дизайн системы, но и принципы ее внутренней архитектуры. Неизменным по сей день остается одно - наличие динамических библиотек (DLL), являющихся основными поставщиками функций (Application Programming Interface - API) для работы системы и приложений.

За время существования 32-разрядной Windows функции API не изменились, меняется лишь их количество. Для удобства разработчиков программы для Windows, все функции API разбиты на определенные категории и находятся в соответствующих библиотеках динамической компоновки (DLL). Вот не полный перечень таких библиотек, приведённый в таблице 1:

Таблица 1

Библиотека

Описание

kernel32.dll

Системные функции низкого уровня.

В этой библиотеке находятся функции управления памятью,

задачами, распределения ресурсов и т.д.

user32.dll

Функции, управляющие работой Windows.

В этой библиотеке находятся функции для работы с сообщениями,

меню, указателями мыши, курсорами, таймерами

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

gdi32.dll

Библиотека интерфейса графических устройств (GDI).

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

большинство функций рисования, работы с контекстами устройств,

метафайлами, координатами и шрифтами.

comdlg32.dll

lz32.dll

version32.dll

Эти библиотеки обеспечивают дополнительные возможности, в том числе

поддержку стандартных диалоговых окон, сжатия файлов и контроля версий.

advapi32.dll

Библиотека содержит функции для работы с реестром Windows и

файлами инициализации (INI).

wininet.dll

В данной библиотеке содержатся функции для использования

Internet и FTP.

netapi32.dll

Сетевые функции Windows.

crypt32.dll

cryptdll.dll

cryptnet.dl

В библиотеках содержатся криптографические функции

и функции для работы с крипто-провайдерами.

ntdll.dl

Иногда в других библиотеках API функции всего лишь объявлены, а реализованы в данной библиотеке, но с другим именем.

*продолжение таблицы 1

comctl32.dll

В этой библиотеке реализован новый (усовершенствованный)

набор управляющих элементов Windows, в числе которых - иерархические списки и

улучшенные текстовые поля.

mapi32.dll

Содержит функции для работы с электронной почтой.

odbc32.dll

Это одна из dll, реализующих архитектуру ODBC (Open Database Connectivity). Функции предоставляют API для работы с базами данных.

winmm.dll

Обеспечивает доступ к мультимедиа.

Эти DLL находятся в системной папке Windows. Есть API функции, которые были созданы во времена Windows 9x и которые не работают на операционных системах семейства Windows NT.

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

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

  • Атрибуты. Концепция окна отличается чрезвычайной гибкостью, поэтому неудивительно, что окно обладает множеством атрибутов. Одни относятся к внешнему виду окна (размер, позиция, видимость и т.д.); другие - определяют поведение окна, способы обработки нажатий клавиш на клавиатуре и кнопок мыши.

  • Сообщения. С каждым окном связана специальная функция - функция окна (window function). В этой функции реализуется цикл обработки сообщений, получаемых от различных источников. Самыми важными являются сообщения самой операционной системы.

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

Что касается внешнего вида окна, то он зависит от класса окна и примененного при создании окна стиля. Класс окна – это главный идентификатор, используемый при создании окон одного типа. Например, все текстовые поля в Windows относятся к классу Edit, кнопки - к классу Button, а статичные надписи - к классу Static. Каждый оконный класс имеет стандартный набор стилей, которые можно указать при создании окна, например, у оконного класса Static имеется стиль SS_CENTER, позволяющий отцентрировать выводимый на надписи текст. Стиль есть по сути цифра, а набор стилей - набор цифр, объединенных операцией ИЛИ (OR).

Реакция на сообщения также напрямую зависит от класса окна. Например, только у класса Static имеется возможность обработки сообщения STM_SETIMAGE, позволяющего ассоциировать с надписью какую-нибудь картинку или иконку.

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