Windows API
Windows API (zwane też WinAPI) - zbiór funkcji, stałych i zmiennych potrzebnych i umożliwiających działanie programu w systemie operacyjnym Windows.
Zbiór ten jest bardzo obszerny i zawiera funkcje zarówno do tworzenia okien programow, przeróżnych menu i innych elementów interfejsu użytkownika, jak i sprawdzania działań użytkownika. A także umożliwiające dostęp do innych aplikacji, funkcji sieciowych czy sprzętu w komputerze. Mianem WinAPI określamy standardowe funkcje przychodzące wraz z plikami .dll (w 16-bitowych wersjach z rozszerzeniem .exe) dostarczanymi z systemem - np. kernel32.dll, user32.dll, gdi32.dll czy wsock32.dll, znajdujące się w podkatalogu System w głównym katalogu Windowsa. Ilość bibliotek rośnie wraz z każdą nową wersją Windows. Powoduje to także problemy z uruchomieniem aplikacji napisanej w starej wersji systemu pod kontrolą nowej. Obecnie znakomita wiekszość kompilatorów posiada odpowiednie pliki nagłówkowe umożliwiające korzystanie z WinAPI.
Oto kod najprostszego programu wyświetlającego wiadomość "Witaj kolego!":
- include <windows.h>
int WINAPI WinMain (HINSTANCE hProgram, HINSTANCE hPrzedProgram, PSTR pPolecenia, int iWyglad) {
MessageBox (NULL, "Witaj kolego!", "Powitanie", MB_OK); return 0;
}
A oto kod z tłumaczeniami:
- include <windows.h> //lik nagłówkowy dajacy dostęp do funkcji WinApi
int //typ wartości zwracanej przez WinMain WINAPI //makro do __stdcall - standardowe wywołanie WinMain, obowiązkowe! WinMain //glowna funkcja programu, windowsowy odpowiednik Main()
(HINSTANCE hProgram, //uchwyt realizacji - instancji naszego programu HINSTANCE hPrzedProgram, //uchwyt do innej ralizacji, nieużywany obecnie PSTR pPolecenia, //lista poleceń, gdy uruchamiamy program z wiersza poleceń int iWyglad) //parametry pojawienia się okna na starcie programu
{
MessageBox //funkcja wywołująca proste okno dialogowe - komunikat (message) (NULL, //uchwyt do okna nadrzędnego, NULL - pulpit "Witaj kolego!", //treść wiadomości w obszarze klienta "Powitanie", //tytuł wiadomości na pasku tytułu MB_OK); //flaga przycisku OK return 0; //wartosć zwracana przez WinMain
}