Win32 API - Úvod
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Win32 API - ÚvodWin32 API - Úvod

 

Win32 API - Úvod

Google       Google       1. 1. 2006       40 822×

Úvod do Win32 API.
Win32 API je programovací rozhranní ve Windows vyvinuté Microsoftem pro programovací jazyky C/C++, ale nejen pro ně. My se budeme zabývat Win API pomocí C/C++. Vysvětlíme si co je Win32 API a co budeme potřebovat k jeho zvládnutí. Jak budeme postupovat a jak psát ve Win API...

Reklama
Reklama

CCo to je API?

API, neboli aplikační programovací rozhranní (application programming interface), je programovací rozhraní vyvinuté Microsoftem pro programování ve Windows v jazyce C/C++, ale nejen v něm.

Operační systém Windows má definováné své API, které obsahuje všechna volání funkcí, které může aplikace volat z operačního sytému. Také obsahuje definice souvisejících datových typů a struktur.

Takže co tedy je Win32 API?

Z našeho pohledu, coby programátorů, je Win32 API programovací rozhraní, které budeme používat pro komunikaci s operačním systémem Windows a volat jeho různé funkce, využívat jeho datové typy a struktury pro tvorbu aplikací založených na grafickém rozhranní.

Jedná se o tisíce funkcí, které nám umožní provádět různé akce, aniž bychom ty funkce museli vymýšlet; používat datové typy a struktury OS Windows. Win API definuje celou škálu f-cí (funkcí) pro grafiku (GDI), zvuk, ovládací zařízení, sítě aj. Proto se používa hl. při vývoji počítačových her a ve spojeni s DirectX nebo OpenGL jsou to velice silné nástroje. Respektive bez Win32 API byste v DirectX nebo OpenGL nic neudělali. Ale dají se pomocí API psát i vynikající hry bez DirectX nebo OpenGL.

Win32 API definuje určenou strukturu programu, se kterou se blíže seznámíme v příštím díle.

Pozn.: API se vyvíjí již od Windows verze 1.0, neustále se rozrůstá a jen pro zajímavost, ve Windows 1.0 mělo API kolem 450 funkci, dnešní API jich obsahuje tisíce. Rozdíl dnešního API oproti původnímu byla jeho bitová architektura, kde se dříve používalo 16 bitové API, dnes se používá 32 bitové. Co to znamená? Jedná se o použivání 16 a 32 bitových čísel/parametrů. Win32 API obsahuje z hlediska zpětné kompatibility spousty 16 bitových funkcí, ale my se budeme zabývat převážně 32 bitovou architekturou.

Dobrá tedy, když teď víme, co je Win32 API a chceme se ho naučit, co budeme potřebovat? Celkem 3 věci.

Je důležitá alespoň základní znalost jazyk C++ nebo C, pokud ji nemáte, doporučuji nejdříve projít kurz C++.

Kompilátor C++ - doporučuji volně dostupný Dev-C++ nebo MS Visual C++ (zkr. MSVC) MS Visual Studia.

Trpělivost a čas.

Já budu používat kompilátor Dev-C++ vzhledem k jeho dostupnosti. Pokud byste měli problém s funkcí na MSVC, pokusím se to řešit.

Jelikož je programování ve Win32 API už trochu složitější než programování v textovém režimu, řekneme si, jak budeme kód psát, aby se nám v něm lépe orientovalo. Komentáře se používají stejně jako v textovém režimu.

Příklad:

//toto je jednořádkový komentář v API
/*a toto je 
   víceřádkový komentář v API*/

Doporučuji používat konvenci známou jako maďarská notace pojmenování identifikátorů. Název byl dán na počest legendárního programátora Microsoftu Charlese Simnoyie. Já ji používám a mnohokrát se mi velice osvědčila a budu ji používat i zde, nebojte se, nejde o nic hrůzostrašného. Jedná se o zkratku – znak nebo sled znaků, které určují datový typ proměnné nebo návratovou hodnotu f-ce atp. Až se nám bude program rozrůstat, zjistíte, že orientace mezi tou kupou názvů proměnných a funkcí je stále obtížnější a mnohdy budete i přemýšlet, jakého datového typu je proměnná, co vlastně funkce vrací a právě maďarská notace nám trochu pomůže. Pokud se rozhodnete tuto notaci nepoužívat, vaše věc.


c = char nebo WCHAR nebo TCHAR
by = BYTE (unsigned char)
n = short
i = integer
x,y = int používaný jako souřadnice x nebo y
cx, cy = int používaný jako délka x nebo délka y; c znamené počet
b nebo f = BOOL (int); f má význam slova "flag" - příznak
w = WORD (unsigned short)
l = LONG (long)
dw = DWORD (unsigned long)
fn = funkce
s = řetězec
sz = řetězec ukončený znakem 0
h = handle
p = ukazatel

Používají se následovně:

Když budeme chtít definovat proměnnou typu integer, napíšeme: int iMujInteger;, když třeba proměnnou typu boolean, tak BOOL bMujBool;.

Zkratky se dají i spojovat a kombinovat. Když budeme mít třeba funkci, která vrací dlouhý ukazatel na řetězec ukončený nulou, může mít takový tvar: lpfszMojeVelkaFunkce();

Tak, to bude na úvod stačit. Snad v tom nemáte moc velký guláš, jelikož v příštím díle už si ukážeme nejjednodušší aplikaci ve Win32 API a vysvětlíme si spoustu důležitých detailů, týkajících se vytvoření hlavního okna aplikace.

Nezapomeňte psát dotazy a námitky.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor programuje v jazycích C++ a Delphi, mezi další koníčky patří kvantová fyzika.

Nové články

Reklama
Reklama
Obrázek ke článku Blockchain & Bitcoin konference

Blockchain & Bitcoin konference

V pátek 19. 5. 2017 se v pražském konferenčním centru Andel’s konala Blockchain & Bitcoin konference. Řada odborníků a podnikatelů v oboru blockchainu a kryptoměn představila možnosti budoucího směřování tohoto oboru. Speakeři většinou rusky mluvící provenience prezentovali řešení svých firem založená na technologii blockchainu.

Obrázek ke článku Malware KONNI se úspěšně skrýval 3 roky. Odhalil ho bezpečnostní tým Cisco Talos

Malware KONNI se úspěšně skrýval 3 roky. Odhalil ho bezpečnostní tým Cisco Talos

Bezpečnostní tým Cisco Talos odhalil celkem 4 kampaně dosud neobjeveného malwaru, který dostal jméno KONNI. Ten se dokázal úspěšně maskovat od roku 2014. Zpočátku se malware zaměřoval pouze na krádeže citlivých dat. Za 3 roky se ale několikrát vyvinul, přičemž jeho současná verze umožňuje útočníkovi z infikovaného počítače nejenom krást data, ale i mapovat stisky na klávesnici, pořizovat screenshoty obrazovky či v zařízení spustit libovolný kód. Pro odvedení pozornosti oběti zasílali útočníci v příloze také obrázek, zprávu a výhružkách severokorejského režimu či kontakty na členy mezinárodních organizací.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý