Programowanie Windows (Win32/Win64 API)

Slides:



Advertisements
Podobne prezentacje
C# Windows Forms Zastosowania Informatyki Wykład 2
Advertisements

Tworzenie aplikacji graficznych na przykładzie programu GregEditor
Programowanie Windows (Win32/Win64 API)
NIE TAKI KOMPUTER STRASZNY JAK GO MALUJĄ PODSTAWY OBSŁUGI KOMPUTERA.
Nauczanie na odległość Dr inż. Marlena Plebańska.
Budowa i działanie sieci komputerowych Sieć komputerowa - obejmuje minimum dwa komputery połączone ze sobą (przewodowo lub bezprzewodowo).
„e-Gdańsk – europejska metropolia on-line” Projekt Współfinansowany przez Unię Europejską z Europejskiego Funduszu Rozwoju Regionalnego.
PRACA Z APLIKACJAMI SYSTEM PRZEMIESZCZANIA oraz NADZORU WYROBÓW AKCYZOWYCH EMCS PL 1.
ELEMENTY ZESTAWU KOMPUTEROWEGO
Warstwa biznesowaWarstwa techniczna ??? To przejście jest połączone z innym procesem To przejście wywołuje samowyzwalacz To przejście jest warunkowe.
Systemy operacyjne wczoraj, dziś i jutro. System operacyjny (ang. Operating System, skrót OS) oprogramowanie zarządzające systemem komputerowym, tworzące.
Poczta elektroniczna – e- mail Gmail zakładanie konta. Wysyłanie wiadomości.
Autor: Paweł Matula, klasa 1TB. Urządzenia peryferyjne wejścia wyjścia klawiatura mikrofon skaner mysz monitor drukarka głośniki tablet kamera internetowa.
Co potrafię w przyjaźni z komputerem?.  Z jakich elementów się składa? Z jakich elementów się składa?  Do czego służy? Do czego służy?  Jakie programy.
TurboCAD Zintegrowany system komputerowego wspomagania projektowania
IEN 2010 © wszelkie prawa zastrzeżone SEMINARIUM Pakiet MATLAB w Zakładzie OGM Możliwości posiadanych produktów.
© 2014 IBM Corporation COMMON POLSKA 2014 JDBC z IBM System i Tomasz Piela & Marcin Wilk Global Technlonogy Services, IBM.
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Wydział Informatyki Kierunek: Informatyka Specjalność: Systemy Informatyczne PRACA DYPLOMOWA INŻYNIERSKA.
BIG DATA Przetwarzanie i analiza zbiorów danych w czasie rzeczywistym Marcin Żuchowski SKILLSLEASE Sp. z o.o. |
Repozytoria uczelniane i ich rola w projekcie SYNAT Warszawa Maj 2013 Jak Cię widzą, tak Cię piszą…
Praca dyplomowa inżynierska Temat: Informatyczny system edukacyjny do przedmiotu „Podstawy Kryptologii” Dyplomant: Ewelina Bogusz Promotor: prof. zw.,
Andrzej Feterowski Dyrektor Wydziału Informatyki Urząd Miasta Szczecin BEZPIECZNI RAZEM, czyli zachodniopomorski portal o bezpieczeństwie.
Analiza, projekt i implementacja zintegrowanego systemu zarządzania i promocji dla branży gastronomicznej Krzysztof Grabalski 5921.
Urządzenia i technologie mobilne. Tablet Mobilny komputer większy niż telefon komórkowy, którego główną właściwością jest posiadanie dużego ekranu z zastosowaną.
Jak tworzymy katalog alfabetyczny? Oprac.Regina Lewańska.
Moduł SDI – zasilanie węzłów IIP oraz wykorzystanie danych. Wprowadzenie. Szkolenie przeprowadzone w ramach projektu „TERYT 3 – Rozbudowa systemów do prowadzenia.
System operacyjny Renata P. System operacyjny - jest to zbiór nadrzędnych i niezbędnych programów umożliwiających pracę na komputerze. Jest on pośrednikiem.
System operacyjny komputera
BVMS 5.5 Blok2- Moduł 8: Użytkownicy i grupy
Autor: Andysc dla maaaja0013
Kurs języka C++ – organizacja zajęć ( )
Przeglądarka stron WWW
Biblioteka Główna Uniwersytetu Ekonomicznego w Poznaniu
T. 16 e Proces DGA - opis ogólny.
Administracja systemami operacyjnymi Jesień 2017
WARSZTATY PRAESIDEO.
Projektowanie i tworzenie aplikacji dla platformy .NET
ALGORYTMY I STRUKTURY DANYCH
Akademia C# lab. 9 Zdarzenia i delegaty.
7/17/2018 4:47 PM 7/17/2018 4:47 PM eKAN – eKancelaria
Lekcja 1 – Hello World! Visual Studio, coś łatwego na początek 
Co nowego w Windows 7 Kilka nowości różniących System operacyjny Windows 7 od systemu Windows XP Opracował: Dominik Warmiłło Klasa V Szkoły Podstawowej.
Wykorzystanie aplikacji użytkowych do przeprowadzenia cyberataku
PROGRAMY DO KONTROLI RODZICIELSKIEJ
Bartosz Kowkrak i Aleksander Szydłowski.
Bezpieczeństwo dostępu do danych w systemie Windows
Języki programowania.
9/20/2018 5:29 AM Pobranie pisma potwierdzającego kompetencje w programie Microsoft Partner Network Instrukcja Ostatnia aktualizacja © 2014.
Mateusz Bergolc – pracuje w firmie Marken Systemy Antywirusowe, pomagając klientom dostosować rozwiązania Bitdefender do ich potrzeb. Doradza zarówno.
Dynamics 365 CE i język TypeScript
SMB – Pierwszy projekt Michail Mokkas.
Jak dostosować witrynę internetową usługi Microsoft SharePoint Online
Programy do zarządzania kancelarią prawną
Tworzenie bezpiecznych aplikacji
Sun Java Application Server
Konfiguracja aplikacji sieciowej
Zapraszamy do nowego programu PowerPoint
Podstawy programowania
Microsoft Office Project 2003 Professional
Zapraszamy do nowego programu PowerPoint
Zapraszamy do nowego programu PowerPoint
Pobranie logo programu Microsoft Partner Network Instrukcja
POZNAJEMY PULPIT Opracowanie: mgr Barbara Benisz SP nr 20 w Rybniku
a silverchair information system
dr Danuta Kajrunajtys BUSINESS PROCESS MANAGEMENT ROBOTIC PROCESS
Rozwiązania dla biura: Makra VBA dla AutoCADa , Excela oraz CorelDRAW,
Pomocnik rolnika HashCode 1 Cover page
Najważniejsze operacje graficzne w programie GIMP
Najważniejsze operacje graficzne w programie GIMP
Zapis prezentacji:

Programowanie Windows (Win32/Win64 API) Jacek Matulewski 17 września 2012 (aktualizacja: 10 marca 2018) http://www.fizyka.umk.pl/~jacek/dydaktyka/winprog/

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.

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

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)

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 14.00.23506.0 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 00000000 characteristics 744765CE time date stamp 0.00 version 1 ordinal base 1595 number of functions 1595 number of names

Lista funkcji eksportowanych z DLL Wydruk z dumpbin dla biblioteki kernel32.dll c.d. dumpbin /exports C:\..\SysWOW64\kernel32.dll ... ordinal hint RVA name 4 0 AcquireSRWLockExclusive (forwarded to NTDLL.RtlAcquireSRWLockExclusive) 5 1 AcquireSRWLockShared (forwarded to NTDLL.RtlAcquireSRWLockShared) 6 2 000176E0 ActivateActCtx 7 3 0001EB30 ActivateActCtxWorker 8 4 00042CE0 AddAtomA 1595 63A 00058290 timeGetTime Summary 10000 .data 30000 .rdata 10000 .reloc 10000 .rsrc 60000 .text

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

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

Źródła MSDN – podstawowe źródło wiedzy: Nowy wygląd: http://msdn.microsoft.com/en-us/library/ee663300(v=VS.85).aspx Stary wygląd: http://msdn.microsoft.com/en-us/library/windows/desktop/hh447209(v=vs.85).aspx Inne strony: EFNet #Winprog: http://www.winprog.org/tutorial/ Adam Boduch (Delphi): http://4programmers.net/ Dla programistów .NET: http://www.pinvoke.net/

Ź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