Извиквания на функции на Windows
Ориз. 2.2 Програма HELLOWIN, работеща на Windows 95
За да улесните процеса на компилиране на програми за Windows, можете да използвате помощната програма NMAKE, доставена с Microsoft Visual C++ 4.0. Ако искате да направите промени в изходния файл HELLOWIN.C, всичко, което трябва да направите, за да създадете нов изпълним файл HELLOWIN.EXE, е да стартирате помощната програма NMAKE, както е показано по-горе.
се състои от един или повече раздели, всеки от които започва с ред, който от своя страна започва с писане на целевия файл (целевия файл), последван от двоеточие, и след това изброява един или повече (зависими файлове), които в крайна сметка формират целевия файл. Този ред е последван от червения ред от един или повече командни редове. Тези команди всъщност са предназначени да създадат получения файл от Ако датата или часът на последната модификация на който и да е е по-късен от датата или часа на последната модификация на получения файл, тогава помощната програма NMAKE изпълнява командни редове.
Обикновено NMAKE променя само получения файл, намиращ се в първата секция на make-файла. Ако обаче някой от другите дялове също е резултатен файл, тогава NMAKE модифицира първо този резултатен файл.
HELLOWIN.MAK има два раздела. Ако HELLOWIN.OBJ е модифициран по-късно от HELLOWIN.EXE, тогава командният ред на първия раздел стартира линкера. Ако HELLOWIN.C е модифициран по-късно от HELLOWIN.OBJ, тогава командният ред на втория раздел изпълнява компилатора на C. Тъй като HELLOWIN.OBJ в първия раздел е изходният файл във втория раздел, NMAKE ще провери дали HELLOWIN.OBJ трябва да бъде модифициран, преди да създаде нов HELLOWIN.EXE файл. ТакаТака се изпълнява всъщност отдолу нагоре. Благодарение на работата на C компилатора, обектният модул HELLOWIN.OBJ се създава от изходния файл HELLOWIN.C. В резултат на работата на линкера, изпълнимият файл HELLOWIN.EXE се създава от обектния модул HELLOWIN.OBJ.
В глава 1 видяхме как дефинициите на макроси се предоставят от променливи на средата, зададени от пакетни файлове, които също бяха обсъдени там. Това е предимно включен набор от различни флагове на компилатор и имена на библиотеки за свързване, така че ако искате да научите повече за тях, върнете се към съответния раздел в Глава 1.
Изходен файл на C програма
Вторият файл, показан на фиг. 2.1 е файлът с изходен код HELLOWIN.C. Определянето, че тази програма е написана на езика за програмиране C, може да ви отнеме известно време!
Преди да навлезем в подробностите, нека да разгледаме HELLOWIN.C като цяло. Във файла има само две функции: WinMain и WndProc. WinMain е входната точка към програмата. Това е аналогично на стандартната основна функция на C. Всяка програма на Windows има функция WinMain.
WndProc е "прозоречната процедура" за прозореца HELLOWIN. Всеки прозорец, независимо дали е голям колкото главния прозорец на приложението на Windows или малък като бутон, има съответна процедура за прозорец. Прозоречната процедура е начин за капсулиране на кода, отговорен за въвеждане на информация (обикновено от клавиатурата или мишката) и за показване на информация на екрана. Процедурата на прозореца прави това чрез изпращане на "съобщения" до прозореца. Не се притеснявайте как точно се случва. По-късно ще имате достатъчно време да се опитате да разрешите този проблем.
Извиквания на функции на Windows
HELLOWIN се обажда на поне 17Функции на Windows. Тези функции са изброени тук в реда, в който се показват в програмата (с кратко описание на всяка функция):
• LoadIcon – Зарежда икона за използване в програмата.
• LoadCursor – Зарежда курсора на мишката за използване в програмата.
• GetStockObject – Получава графичен обект (в този случай се използва четка за рисуване на фона на прозореца).
• RegisterClassEx - Регистрира клас прозорец за определен програмен прозорец.
• CreateWindow – Създава прозорец въз основа на класа прозорец.
• ShowWindow – Показва прозорец на екрана.
• UpdateWindow – кара прозореца да преначертае съдържанието си.
• GetMessage – Получава съобщение от опашката със съобщения.
• TranslateMessage - превежда някои съобщения, получени с помощта на клавиатурата.
• DispatchMessage - Изпраща съобщение до прозоречна процедура.
• PlaySound - възпроизвежда звуков файл.
• BeginPaint - Инициира стартирането на процеса на рисуване на прозореца.
• GetClientRect – Получава размера на клиентската част на прозореца.
• DrawText – Чертае ред текст на екрана.
• EndPaint – Спира рисуването на прозореца.
• PostQuitMessage - Вмъква "завършено" съобщение в опашката за съобщения.
• DefWindowProc - Извършва обработка на съобщения по подразбиране.
Тези функции са описани в документацията или контекстната помощна система, доставена с вашия компилатор, и са описани в различни заглавни файлове от WINDOWS.H.
Идентификатори с главни букви
По-късно ще забележите използването на множество идентификатори в HELLOWIN.H, написани изцяло с главни букви. Тези идентификатори са посочени в заглавните файлове на Windows. Някои от тези идентификатори съдържат двубуквен илипрефикс от три букви, последван от долна черта:
CS_HREDRAW CS_VREDRAW CW_USEDEFAULT DT_CENTER DT_SINGLELINE
IDC_ARROW IDI_APPLICATION SND_ASYNC SND_FILENAME
WM_DESTROY WM_PAINT WS_OVERLAPPEDWINDOW