Programowanie Windows
Jacek Matulewski
19 lutego 2017
http://www.fizyka.umk.pl/~jacek/dydaktyka/winprog_v2/
O czym będzie ten wykład:
Hasła:
•Tworzenie aplikacji z GUI
•WinAPI (tylko podstawy, więcej stary wykład)
•Język C#
•WPF
•MVVM
•UWP
•P/Invoke
Co to jest Windows API?
• Windows API = WinAPI = Win32 API
• API = application programming interface
• Interfejs programistyczny pozwalający na dostęp do funkcjonalności Windows z
poziomu kodu. Zbiór bibliotek DLL z eksportowanymi funkcjami.
• Dostęp do niemal wszystkich funkcjonalności Windows (częściowo poza bezpieczeństwem)
• Windows SDK (m.in. nagłówki C do DLL)
Zasadnicze biblioteki Win32 API:
• Base services (jądro) – kernel32.dll
– podstawowe funkcje systemu plików – nie mylić z funkcjami z shell32.dll,
– obsługa urządzeń peryferyjnych, – wątki,
– obsługa błędów – ale nie wyjątki
Zasadnicze biblioteki Win32 API:
• Advanced services – advapi32.dll
– rejestr systemu Windows (baza danych), – zamykanie i restart systemu,
– usługi Windows,
– obsługa kont użytkowników
Zasadnicze biblioteki Win32 API:
• Graphics Device Interface – gdi32.dll
– warstwa abstrakcyjna dla urządzeń wyjścia korzystających z grafiki
– obsługa urządzeń wyjścia m.in. monitor, drukarka – kontakt ze sterownikami urządzeń GDI,
– obsługa czcionek i palet kolorów,
– rysowanie okien, kontrolek, menu itp., – Od Windows XP: GDI+ (C++)
– Windows Vista/7: Windows Display Driver Model
Zasadnicze biblioteki Win32 API:
• User Interface – user32.dll
– podstawowe kontrolki Windows tworzące GUI:
przyciski, paski przewijania, pola wyboru itp.
– obsługa zarówno wejścia (mysz, klawiatura), jak i wyjścia (zmiana wyglądu kontrolki)
– Od Windows XP obsługa kontrolek zgromadzona jest w bibliotece comctl32.dll (Common Control Library), też: pasek stanu, zakładki, itp.
– Nakładki: MCF, ATL, VCL (Borland), Qt,
Gimp Toolkit (GTK), AWT (Java), WF (.NET)
Zasadnicze biblioteki Win32 API:
• Common Dialog Boxes Library – comdlg32.dll
– okna dialogowe udostępniane przez Windows:
1) wczytywanie i zapisywanie pliku, 2) wybór czcionki, wybór koloru,
3) przeszukiwanie i zastępowanie, 4) okna związane z drukowaniem
Zasadnicze biblioteki Win32 API:
• Windows Shell (powłoka systemu Windows) shell32.dll
– wyższa warstwa API (nad jądrem i GUI),
– CopyFile[Ex], MoveFile itd. (kernel32.dll) vs SHFileOperation i IFileOperation (od Vista)
– WinExec (Win16) i CreateProcess (kernel32.dll) vs ShellExecute
– Na funkcjach powłoki bazuje Eksplorator
Windows i częściowo narzędzia administracyjne
Zasadnicze biblioteki Win32 API:
• Networking services
– NetBIOS = Network Basic I/O System,
– WinSock = Windows Sockets API (obsługa TCP/IP) – RPC = remote procedure call
– NetDDE, DDE = dynamic data exchange – por. też. DCOM, COM+
Zasadnicze biblioteki Win32 API:
• Desktop Windows Manager (DWM)
• Windows Management Instrumentation (WMI)
• Windows Internet (WinINet)
• Active Directory
• Cryptography
• Image Mastering API (IMAPI)
• Media Control Interface (MCI)
i wiele, wiele, wiele innych
Historia
Wikipedia: https://en.wikipedia.org/wiki/Microsoft_Windows#/media/File:Windows_Updated_Family_Tree.png