WinAPI C для початківців
Опубликованно 14.02.2018 04:35
C WinAPI — це основний набір програмних інтерфейсів (API) Microsoft, доступних в операційних системах Microsoft Windows. Рання версія носила назву Win32 API.Введення
C WinAPI — це інтерфейс прикладного програмування, який використовується для створення додатків Windows. Для початку роботи починаючий користувач повинен завантажити SDK для Windows, раніше відомий як Platform SDK.
SDK (Software Development Kit) містить файли заголовків, бібліотеки, зразки, документацію та інструменти, які використовуються для розробки додатків. API Windows створений для мов програмування C і C ++. Це найбільш прямий спосіб створення додатків операційної системи від компанії.
C WinAPI можна розділити на кілька областей:
базові послуги;
безпека;
графіка;
користувальницький інтерфейс;
мультимедіа;
оболонка Windows;
мережеві служби.
Базові служби забезпечують доступ до основних ресурсів. До них відносяться функції C WinAPI, файлові системи, пристрою, процеси, потоки, реєстр і обробка помилок. Область безпеки надає інтерфейси, об'єкти та інші елементи програмування для аутентифікації, авторизації, криптографії та інших пов'язаних з безпекою завдань. Підсистема графіки забезпечує функціональність графічного виводу вмісту на монітори, принтери та інші пристрої виводу. Користувальницький інтерфейс забезпечує функціональність для створення вікон і елементів управління.
Компонент мультимедіа надає інструменти для роботи з відео, аудіо та вхідними пристроями. Функції інтерфейсу оболонки дозволяють додаткам одержувати доступ до функцій, що надаються оболонкою операційної системи. Мережеві служби надають доступ до мережевих можливостей ОС Windows. Компоненти
При створенні WinAPI C слід враховувати базові можливості, надані Windows API, які можна упорядкувати в семи категоріях. Розглянемо кожну з них детальніше.
Основні послуги надають доступ до базових системних ресурсів, наявних у Windows. Приклади: файлова система, периферійні пристрої, процеси, доступ до системного реєстру і система управління винятками. Ці функції зберігаються у файлах kernel.exe, krnl286.exe або krnl386.exe для 16-розрядних систем і kernel32.dll і advapi32.dll для 32-розрядних систем.
Графічний інтерфейс забезпечує доступ до ресурсів для відображення на моніторах, принтерах і іншому периферійному обладнанні. Зберігається у файлі gdi.exe на 16-розрядних системах і gdi32.dll в 32-розрядних системах.
Користувальницький інтерфейс відповідає за перегляд та управління основними елементами, такими як кнопки і смуги прокрутки, отримання інформації про клавіатурі і миші, а також пов'язані з ними функції. Ці функції зберігаються у файлі user.exe у 16-розрядних системах і user32.dll comctl32.dll в 32-розрядних системах. Починаючи з версії XP елементи управління були згруповані в comctl32.dll.
Загальні діалоги — відображають дані для відкриття і збереження файлів, вибору кольору та шрифту. Знаходяться у файлі comdlg.dll на 16-розрядних системах і comdlg32.dll в 32-розрядних системах.
Windows Shell — компонент WinAPI, який дозволяє додаткам одержувати доступ до функцій, що надаються оболонкою операційної системи.
Мережеві служби забезпечує доступ до різних мережевих можливостей операційної системи. Його подкомпоненти включають NetBIOS, Winsock, RPC. В старих версіях — NetDDE.
Версії
Win16, Win32 і Win32s є стандартними наборами компонентів, які дозволяють прикладного програмного забезпечення використовувати функції різних операційних систем сімейства Windows.
Win32, наступник Win16, був представлений в 1993 році в 32-розрядних продуктах сімейства Windows, таких як Windows NT, 2000, 95. Цей програмний інтерфейс реалізований трьома програмними бібліотеками: Kernel32.dll, User32.dll і GDI32.dll2. Ті ж функції Win32 доступні у всіх продуктах Windows, і, в залежності від продукту, використання певних функцій може призвести до помилки обслуговування.
Можливості Win32 включають в себе взаємодію між програмами, управління процесами, комп'ютерними мережами, файлами, принтером, серверами та комунікаційними портами.
Специфікація
C WinAPI — це абстрактна специфікація інтерфейсу програмування для операційної системи Windows. Складається з оголошень функцій, об'єднань, структур, типів даних, макроси, констант і інших елементів програмування. WinAPI описується головним чином MSDN (Microsoft Developer Network) і знаходиться в заголовках Windows C. Офіційна реалізація функцій WinAPI знаходиться в динамічних бібліотеках (DLL): наприклад, kernel32.dll, user32.dll, gdi32.dll або shell32.dll в системному каталозі. Існують сторонні реалізації Windows API: в першу чергу проект Wine і проект ReactOS.
Windows API — динамічний об'єкт. Кількість функцій постійно зростає з кожною новою версією ОС і новими пакетами оновлень. Існують також важливі відмінності між версіями сервера і настільними версіями операційної системи. Деякі функції офіційно не документовані.
Pelles C
Pelles C — безкоштовна програма і кращий компілятор C і інтегрована середовище розробки (IDE) для мови програмування C. Підтримує 32-розрядну Windows (x86) і 64-розрядну Windows (x64). Реалізує як стандарти C99, так і C11. Pelles C має вбудований редактор ресурсів, растрове зображення, значок і редактор курсорів і редактор шістнадцятиричних дампів. Він розроблений шведським розробником Пелле Ориниусом. Назва компілятора носить ім'я свого автора. Поставляється з SDK, тому програміст відразу може приступити до створення додатків без подальшої установки.Помилка цільової архітектури
Щоб створювати програми Windows API, необхідно включити розширення Microsoft. За замовчуванням вони виключені, у зв'язку з чим компілятор видає повідомлення про помилку, яке служить прикладом C WinAPI з порушеною структурою: fatal error #1014: #error: No target architecture" («Немає цільової архітектури»). Щоб включити розширення Microsoft, переходимо до параметрів проекту і вибираємо вкладку «Компілятор». На цій вкладці активуємо прапорець «Включити розширення Microsoft».MSDN
MSDN (Microsoft Developer Network) є центральним порталом для розробки Windows. Це величезна колекція матеріалів, пов'язаних з розробкою додатків з використанням інструментів Microsoft. Це найповніша база поряд з документацією по розробці настільних додатків і список API Windows.
Застосування DLL в WinAPI C
Бібліотека загальних елементів керування забезпечує доступ до розширених функцій операційної системи, таким як рядка стану, індикатори виконання, панелі інструментів, вкладки. Ці команди знаходяться в бібліотеці commctrl.dll у 16-розрядних системах і comctl32.dll і згруповані з користувальницьким інтерфейсом.
DLL — це формат файлу динамічної бібліотеки посилань, використовуваний для зберігання декількох кодів і процедур для програм Windows. Файли DLL були створені таким чином, що кілька програм могли використовувати їх інформацію одночасно, допомагаючи зберегти пам'ять. Дозволяє користувачеві редагувати кодування відразу декількох додатків без їх зміни. Бібліотеки DLL можна перетворити статичні, використовуючи DOS Disassembler або DLL для Lib 3.00.WinAPI C для початківців
WinAPI як інтерфейс прикладного програмування для Windows пропонує безліч потужних функцій, які дозволяють створювати свої програми, починаючи з простої обробки файлів і закінчуючи побудовою графічного інтерфейсу для програмування низькорівневих драйверів пристроїв.
Перш ніж почати програмування в WinAPI, необхідно налаштувати середовище для коду в ОС Windows. Оскільки це не дистрибутив Linux, у нього немає вбудованого компілятора для створення додатків. Розглянемо наступні варіанти для компіляції коду:
MinGW/Cygwin — стороннє додаток C WinAPI, які забезпечує придатну середовище програмування на платформі Windows. Даний компілятор ідеальний для початківця користувача завдяки простоті і зручності організації середовища. При роботі з цим рішенням буде потрібно текстовий редактор, так як він не передбачений графічним інтерфейсом програми.
Сторонні IDE, або інтегровані середовища розробки, — це додатки, які створюють середовище GUI для розробників. Вони поставляються в комплекті з відповідними інструментами, такими як MinGW, для створення програм Windows.
Microsoft Visual Studio (MSVS) являє собою розроблену Microsoft IDE в комплекті зі своїм власним компілятором, що надає безліч функцій і можливостей при створенні власних програм Windows, включаючи графічний інтерфейс, інформацію про версію програми, значки та інші ресурси. Оптимальний при дослідженнях розробки шкідливих програм.
Для Windows доступний комплект розробника, який надає документацію та інструменти, що дозволяють розробникам створювати програмне забезпечення з використанням API і пов'язаних з ним технологій.
Категория: Техника