Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Programowanie Windows (Win32/Win64 API)
Jacek Matulewski 17 września 2012 (aktualizacja: 10 marca 2018)
2
O czym będzie ten wykład:
Tworzenie aplikacji dla systemu Windows z użyciem interfejsu programisty Win32 Aplikacje z graficznym interfejsem użytkownika (GUI). Przede wszystkim MFC, mniej VCL. Powłoka systemu Windows (Windows Shell). Podstawy programowania sieciowego. Wszystkich funkcji jest tysiące. My wycinek.
3
O czym nie będzie: Win16 i Win32s, .NET/CLR, WinRT
Zakładam znajomość podstaw C/C++ (if, for, while, switch). Jeżeli trzeba powtórzę wskaźniki i klasy. Zakładam znajomość podstaw ang. - MSDN Skupię się raczej na rdzeniu WinAPI, niż na nowościach (np. z Windows 8) DirectX/OpenGL – osobny wykład
4
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)
5
Lista funkcji eksportowanych z DLL
Listę eksportowanych funkcji możemy obejrzeć za pomocą uniwersalnego narzędzia dumpbin z Visual C++ c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe Sprawdźmy dla przykładu zawartość biblioteki kernel32.dll dumpbin /exports C:\..\SysWOW64\kernel32.dll Microsoft (R) COFF/PE Dumper Version Copyright (C) Microsoft Corporation. All rights reserved. Dump of file c:\Windows\SysWOW64\kernel32.dll File Type: DLL Section contains the following exports for KERNEL32.dll characteristics 744765CE time date stamp 0.00 version 1 ordinal base 1595 number of functions 1595 number of names
6
Lista funkcji eksportowanych z DLL
Wydruk z dumpbin dla biblioteki kernel32.dll c.d. dumpbin /exports C:\..\SysWOW64\kernel32.dll ... ordinal hint RVA name AcquireSRWLockExclusive (forwarded to NTDLL.RtlAcquireSRWLockExclusive) AcquireSRWLockShared (forwarded to NTDLL.RtlAcquireSRWLockShared) E0 ActivateActCtx EB30 ActivateActCtxWorker CE0 AddAtomA A timeGetTime Summary data rdata reloc rsrc text
7
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
8
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
9
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
10
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)
11
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
12
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
13
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+
14
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
15
Historia Wikipedia:
16
Zgodność wstecz Windows 1.01 – 450 funkcji
Windows 7 – tysiące funkcji! (ale te 450 nadal jest) Windows 8 – pierwsze poważne odejścia od zgodności Windows 10 – ostatnia wersja
17
Źródła MSDN – podstawowe źródło wiedzy: Nowy wygląd: Stary wygląd: Inne strony: EFNet #Winprog: Adam Boduch (Delphi): Dla programistów .NET:
18
Źródła Książki: Jeffrey Richter, Christopher Nasarre Windows via C/C++ (wydanie 5), Microsoft Press, Warszawa 2009 Johnson M. Hart Programowanie w systemie Windows (wydanie 4), Helion 2010 Jacek Matulewski, Maciej Pakulski, Dawid Borycki, Bartosz Biały, Piotr Pepłowski, Michał Matuszak, Daniel Szlag, Dawid Urbański Visual C++. Gotowe rozwiązania dla programistów Windows, Helion 2010
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.