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       39 342×

Ú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

Obrázek ke článku Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

Reklama
Reklama
Obrázek ke článku ICT PRO školení zaměřené nejenom na ICT

ICT PRO školení zaměřené nejenom na ICT

Dovolte, abychom se představili. Jsme zaměstnanci společnosti ICT Pro, profesionálové v oblasti poskytování komplexních ICT služeb. Neboli služeb spojených s informačními a komunikačními technologiemi, které dnes - ve 21. století - tvoří  nedílnou součást běžného provozu všech moderních firem.

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 © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý