Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпора 97.doc
Скачиваний:
0
Добавлен:
23.01.2020
Размер:
778.75 Кб
Скачать

Лекция1. Тема: Введение. Вопросы системного программирования.

1.1 Основы программирования в операционной системе Windows

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

– классическая структура — имеет одно главное окно;

– диалоговая структура — главным окном является диалоговое окно;

– консольный тип — главным окном является консольное окно (созда­ваемое или наследуемое);

– безоконная структура — это Windows -приложение, не имеющее главного окна;

– сервисы — программы, имеющие специальную структуру и играющие особую роль в операционной системе;

– драйверы — имеющие особую структуру программы для управления внешними устройствами.

Рассмотрим первую, классическую структуру.

Итак, начнем с нескольких общих положений о программировании в Windows.

1. Программирование в Windows основывается на использовании функций API (Application Program Interface, Программный интерфейс приложе­ния). Взаимодействие с внешними устройствами и ресурсами операционной системы будет про­исходить посредством таких функций.

2. Список функций АРI и их описание лучше всего брать из файла WIN32.HLP, который поставляется, например, с пакетом Borland C++. Подробнейшее описание по функциям API и по программированию в среде Windows в целом содержится в документации к Visual Studio.NET.

3. Главным элементом программы в среде Windows является окно. Для каж­дого окна определяется своя процедура обработки сообщений.

4. Окно может содержать элементы управления: кнопки, списки, окна ре­дактирования и др. Эти элементы, по сути, также являются окнами, но обладающими особыми свойствами. События, происходящие с этими элементами (и самим окном), приводят к приходу сообщений в процеду­ру окна (вызов процедуры с определенными параметрами, определяю­щими событие).

5. Операционная система Windows использует линейную адресацию памяти. Другими словами, всю память можно рассматривать как один сегмент.

6. Следствием пункта 5 является то, что мы фактически не ограничены в объеме данных, кода или стека (объеме локальных переменных). Сегмен­ты в тексте программы позволяют задать отдельным фрагментам кода (секциям) определенные свойства: запрет на запись, общий доступ и т. д.

7. Операционная система Windows является многозадачной средой. Каждая задача имеет свое адресное пространство и свою очередь сообщений. Бо­лее того, даже в рамках одной программы может быть осуществлена многозадачность — любая процедура может быть запущена как самостоя­тельная задача.

1.1.1 Вызов функций api

Начнем с того, как можно вызвать функции API. Выберем любую функцию API, например, MessageBox:

int MessageBox (HWND hwnd, LPCTSTR 1pText, LPCTSTR 1pCaption, UINT uType);

Данная функция выводит на экран окно с сообщением и кнопкой (или кнопками) выхода. Смысл параметров:

hWnd – дескриптор окна, в котором будет появляться окно-сообщение,

lpText – текст, который будет появляться в окне,

lpCaption – текст в заголовке окна,

uType – тип окна, в частности можно определить количество кнопок выхода.

Теперь о типах параметров. Все они в действительности 32-битные целые числа:

HWND – 32-битное целое,

LPCTSTR – 32-битный указатель на строку,

UINT – 32-битное целое.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]