winapi_w01.pdf

(1473 KB) Pobierz
Podstawy programowania
Podstawy programowania
w j
w języku C dla środowiska Windows
ęzyku C dla środowiska Windows
Część pierwsza
Windows API — wprowadzenie
Autor
Roman Simiński
Kontakt
roman.siminski@us.edu.pl
www.us.edu.pl/~siminski
Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w nim uczestnictwa.
Opracowanie to jest chronione prawem autorskim. Wykorzystywanie jakiegokolwiek fragmentu w celach innych niż nauka własna jest nielegalne.
Dystrybuowanie tego opracowania lub jakiejkolwiek jego części oraz wykorzystywanie zarobkowe bez zgody autora jest zabronione.
903039745.029.png 903039745.030.png
Podstawy programowania w C dla systemu Windows
W i n d o w s A P I — w p r o w a d z e n i e
Program, który robi nic
#include <windows.h>
int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpszCmdLine, int iCmdShow )
{
return 0;
}
Ten plik nagłówkowy otwiera „okno” do programowania w okienkach
Plik nagłówkowy windows.h zawiera definicje i deklaracje wszystkich typów
danych, funkcji oraz makr Windows API .
Windows API , zwane potocznie WinAPI , to zestaw podstawowych bibliotek,
pozwalających na programowanie aplikacji w środowisku Windows.
Firma Microsoft udostępnia SDK (ang. Software Development Kit ) — to
dokumentacja i zestaw narzędzi pozwalających na tworzenie oprogramowania
z wykorzystaniem WinAPI oraz technologii dostępnych w systemie Windows.
Copyright © Roman Simiński
2
Strona :
 
903039745.031.png
 
903039745.001.png 903039745.002.png 903039745.003.png 903039745.004.png 903039745.005.png 903039745.006.png 903039745.007.png 903039745.008.png
Podstawy programowania w C dla systemu Windows
W i n d o w s A P I — w p r o w a d z e n i e
Co oferuje WinAPI?
Dostęp do systemu plików , sterowników , procesów i wątków ( kernel32.dll ),
dostęp do dodatkowych elementów jądra, np. obsługa rejestrów , usług
systemowych , zarządzania kontami ( advapi32.dll ).
Realizacja operacji graficznych ( gdi32.dll i win32k.sys ), zarządzanie ekranem ,
oknami i ich elementami , obsługa myszy i klawiatury , obsługa standardowych
okien dialogowych ( user32.dll i comctl32.dll ), dostęp do powłoki systemu
operacyjnego ( shlwapi.dll ).
Dostęp do obsługo sieci i usług sieciowych ( NetBIOS , Winsock , NetDDE , RPC ),
obsługa wbudowanych w system elementów przeglądarki internetowej, URL, XML
( shdocvw.dll , mshtml.dll , msxml.dll ).
Obsługa wspieranej sprzętowo grafiki 3D, dźwięku, manipulatorów,
programowanie gier i systemów multimedialnych (ogólnie mówiąc DirectX ).
Copyright © Roman Simiński
3
Strona :
 
903039745.009.png
 
903039745.010.png 903039745.011.png 903039745.012.png 903039745.013.png 903039745.014.png 903039745.015.png
Podstawy programowania w C dla systemu Windows
W i n d o w s A P I — w p r o w a d z e n i e
Dygresja — WinAPI a Native API
WinAPI dostarcza udokumentowanych i zalecanych metod programowania
aplikacji systemu Windows.
Jednak wraz z pojawieniem się Windows NT, wprowadzono dodatkowy,
„nieoficjalny” interfejs programistyczny zwany Native API .
Native API przypomina zestaw nieudokumentowanych przerwań z systemu DOS
— te możliwości są, choć nie są oficjalnie, w pełni i spójnie, opisane.
Aplikacje wykorzystujące Native API mogą pracować przed załadowaniem
bibliotek obsługujących WinAPI , Native API dostarcza możliwości niedostępnych
z poziomu Win API , operacje są zwykle szybsze.
Native API obsługuje pełny zestaw wywołań systemowych opisany w normie
POSIX dla systemów Unix'owych, mino, że oficjalnie w systemie Windows ich nie
ma.
Copyright © Roman Simiński
4
Strona :
 
903039745.016.png
 
903039745.017.png 903039745.018.png 903039745.019.png 903039745.020.png 903039745.021.png
Podstawy programowania w C dla systemu Windows
W i n d o w s A P I — w p r o w a d z e n i e
Program, który robi nic, cd. ...
#include <windows.h>
int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpszCmdLine, int nCmdShow )
{
return 0;
}
Od tej funkcji zaczyna się wykonanie programu
WinMain to funkcja stanowiąca punkt wejściowy programu. Jest odpowiednikiem
funkcji main dla programu zgodnego z ANSI C.
WinMain nie jest częścią języka C, jej prototyp jest zdefiniowany w winbase.h , ten
z kolei jest włączany przez nagłówek windows.h .
Podana postać to „czysta” wersja dla Win API , w wielu graficznie zorientowanych
środowiskach programistycznych bywa ona inaczej zapisywana lub wręcz jest
ukrywana.
Copyright © Roman Simiński
5
Strona :
 
903039745.022.png
 
903039745.023.png 903039745.024.png 903039745.025.png 903039745.026.png 903039745.027.png 903039745.028.png
Zgłoś jeśli naruszono regulamin