Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой (ОС).docx
Скачиваний:
9
Добавлен:
11.06.2015
Размер:
169.11 Кб
Скачать

Министерство образования и науки российской федерации

ОБНИНСКИЙ ИНСТИТУТ АТОМНОЙ ЭНЕРГЕТИКИ - филиал

федерального государственного автономного образовательного учреждения

высшего профессионального образования

«Национальный исследовательский ядерный университет «МИФИ»

(ИАТЭ НИЯУ МИФИ)

Факультет Кибернетики

Кафедра Компьютерных систем, сетей и технологий

Курсовой проект на тему:

Разработка приложений, используя средства Windows 7.

Выполнил:

студент гр. ВТ1-С10

Карпенко С.В.

Проверила:

Куликова Н.В.

Обнинск 2013

Введение 3

Особенности Win32 API 3

Расширение функциональности WinMain. 4

Класс окна 6

Создание окна 7

Расширение функциональности WndProc 8

С чего начать? 10

Операционная система x64 10

Разработка для x64 с помощью Visual C++ 14

Как сделать код совместимым с Win64 15

Отладка 17

Заключение 19

Приложения 19

Приложение 1. 19

Приложение 2. 21

Литература 21

Введение

На выбор данной темы курсовой работы меня подтолкнул курсовой проект, над которым я работал в прошлом семестре, в ходе которого я познакомился с платформой разработки приложение .Net FrameWork. Я изучал разные среды разработки, такие как С#, C++ и др. В ходе работы я изучил принципы работы линкеров, трансляторов и компиляторов в данных средах, изучил debugger'ы. Данная работа углубит мои знания в процессе разработки приложений с использованием интерфейса Win32/64 API. В данный момент на мировом рынке активно продвигается операционная система Windows от корпорации Microsoft, т.о. можно сделать вывод, что изучение основ и других аспектов программирования с использованием Win 32/64 API благоприятно повлияет на мою эрудированность в сфере программирования. А знания о переходе от Win32 к Win64 помогут мне писать актуальные приложения под систему Windows 7/8, которые на данный момент шире всего распространены.

ОсобенностиWin32api

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

Как известно, любое приложение на языках C и C++ должно иметь функцию main. Эта функция является начальной точкой для приложения. Подобным же образом любое приложение Win32 должно иметь функцию WinMain. Синтаксис функции WinMain выглядит следующим образом:

int WINAPI WinMain

(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow);

  • HINSTANCE hInstance – дескриптор экземпляра приложения. Этот дескриптор содержит адрес начала кода программы в ее адресном пространстве. Дескриптор hInstance чаще всего требуется функциям, работающим с ресурсами программы.

  • HINSTANCE hPrevInstance – дескриптор предыдущего экземпляра приложения. Этот дескриптор остался от старых версий Windows - скорее всего, вам он никогда не пригодится.

  • LPSTR lpCmdLine – указатель на начало командной строки, введенной при запуске программы.

  • int nCmdShow – это значение содержит желаемый вид окна (например, свернутый или развернутый)

Значение, которое возвращается функцией WinMain (тип int) – код завершения программы. Принято, что если программа завершила свое выполнение без ошибок, возвращается 0.

Функция WinMain – первая функция, которая выполнятся в программе (ее еще называют «точка входа» или «entry point»). С нее все начинается, и ею (желательно) все должно закончиться.

Наряду с функцией WinMain, в каждом приложении Win32 также должна быть определена еще одна функция, обычно называемая WndProc и представляющая собой оконную процедуру. Синтаксис функции WndProc выглядит следующим образом:

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

При вызове этой функции ей передаются следующие параметры:

  • HWND hWnd – описатель окна, от которого пришло сообщение.

  • UINT message – идентификатор сообщения.

  • WPARAM wParam и LPARAM lParam – параметры сообщения.

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