![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Типи даних Windows
Windows API визначає істотнечисло типів данихдля позначення параметрів функцій і значень, що повертаються. Ці специфічні типи Windows також поширюютьсяна функції, які визначаються в MFC. Кожен з цих типів Windows відображатиметься на деякий тип C++, але відповідність між типами Windows і типами C++ може змінюватися, тому слід завжди використовувати типи Windows. Наприклад, в минулому тип Windows WORDбув визначений в одній версії Windows як unsignedshort, а в іншій версії Windows як unsignedint. На 16-бітних машинах ці типи еквівалентні, але на 32-розрядних машинах вони рішуче відмінні, отже використовуючи тип C++ замість типу Windows можна нарватися на проблеми. Повний перелік типів Windowsможна знайти у документації, а тут подано лише ті, які зустрічаються найчастіше: DOUBLE BOOLEAN BYTE CHAR TCHAR USHORT WCHAR WORD BOOL DWORD HANDLE HBRUSH HFILE HINSTANCE LPARAM WPARAM LPCSTR LPHANDLE LRESULT UINT Усі типи, які використовує Windows та прототипи функцій WindowsAPI містяться в заголовковому файлі windows.h, отже необхідно включати цей файл у програми для Windows. 3.3 Принципи найменування змінних (Угорська нотація). Windows використовує описові імена змінних, або т.зв. " угорську нотацію". Суть угорської нотації полягає в тому, що перед іменем змінної або функції ставиться префікс із однієї або кількох букв, який говорить про тип цієї змінної. Так, префікс n позначає цілочисельну змінну, sz – символьний рядок, який закінчується двійковим нулем, h – дескриптор того чи іншого об'єкту. Звідси і беруться дещо незграбні на перший погляд імена змінних програми на кшталт szClassName або szTitle. Угорська система широко використовується в описах внутрішніхструктур Windows. Так, в структурі типу WNDCLASS, із якою має справу функціяRegisterClass(), є члени lpszClassName (l ong p ointertoa z eroterminated s tringwith Name of Class, далекий вказівник на символьний рядокіз нулем в кінці, що містить ім'я класу), lpfnWndProc (l ong p ointertoa f u n ction WndProc, далекий вказівник на функцію вікна).Так само, dwAccess — подвійне слово (32 біта), що містить прапорці прав доступу до файлу, де " dw" означає " Doubleword" — " подвійне слово".Уявлення про угорську нотацію дещо полегшує вивчення вмісту цих структур і використання їхелементів у програмах. Угорська нотація використовується з метою мінімізації неправильного використання змінних. Кожна змінна повинна трактуватись так, як це було визначено. Неправильне тлумачення легко було зробити у мові C. C++ має сильнішу перевірку відповідності типів, тому проблеми виникають рідше. Компілятор C++ завжди сигналізує помилку при несумісності типів у вашій програмі.З іншого боку, Угорська нотація допомагає зробити програми легшими для розуміння, особливо, коли ви маєте справу із багатьма змінними різних типів, які є параметрами для функцій Windows API. Угорська нотація у жодному разі не є обов'язковою. Ви, можете не використовувати її взагалі, але у більшості випадків програмується простіше, якщо розумієш, якими є параметри функцій Windows API.
|