Kurz1 - Kapitola2

17. června 2007 v 16:12 | http://www.sweb.cz/kurz_evt/ |  Programování pro WinCE

2. První programy

Jestliže jste úspěšně zvládli instalaci eVT, můžeme se pustit do prvních pokusů. V této části bychom si měli ukázat základní práci s prostředím eVT a vytvořit první programy. Opět upozorňuji, že v uvažovaném rozsahu mohu popsat pouze hrubé základy ovládání eVT.

2.1 První "Ahoj světe!"

Spusťte si v minulém díle zmíněný eMbedded Visual C++ 3.0 (eVC). Prázdné prostředí má již na úvod několik funkčních nabídek. Edit určitě znáte z jiných programů, doporučuji k prohlédnutí a prostudování také Help. Nás nyní bude zajímat File, protože si vytvoříme nový "Workspace". To je vlastně adresář, do kterého si eVC uloží některé soubory, které bude potřebovat pro překlad a kam se budou ukládat naše zdrojové soubory. Doporučuji si vytvořit zvláštní složku na své první pokusy. V našem případě se bude jmenovat např. "C:\Pokusy".
Po volbě File->New se otevře dialog, v němž na kartě Projects zvolíme do Location jméno uvedené složky a název našeho projektu pro úvodní pokus zadáme např. "Ahoj". Jako typ zvolené aplikace budeme zadávat "WCE Application".

obr. 3 Vytvoření projektu
Po odsouhlasení se objeví nový dialog se třemi volbami. Pro náš první pokus vybereme "An empty project" a necháme počítač dokončit zbytek Po třetím dialogu s hlášením, co bude vygenerováno, již eVT vytvoří první Workspace.
Pokud byste se podívali do výše uvedené složky, zjistíte, že je tam několik souborů. Žádný z nich však neobsahuje zdrojový kód našeho programu. Podíváte-li se v levém okně na záložku FileView, neobsahuje náš Workspace ani jeden zdrojový soubor (ani program, ani hlavičkový či resource soubor).
Nezbývá než jej vytvořit. Zvolte File->New a na kartě Files vyberte "C++ Source File". Jako File name uvedeme např. "Ahoj". Zkontrolujte, zda je zatrženo, že soubor bude přidán do projektu "Ahoj".

obr. 4 Přidání souboru do projektu

Nyní již máte možnost editovat obsah zdrojového kódu souboru Ahoj.cpp. Do pravého okna tedy vložte tento text:
#include < windows.h >

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPWSTR lpCmdLine, int nShowCmd)
{
MessageBox(NULL, TEXT("Ahoj svete!"), TEXT("Muj pokus"), MB_OK);
return 0;
}

Vzdáleně to připomíná první HelloWorld programy z běžných kurzů jazyka C. Pro komunikaci s operačním systémem je zde použit hlavičkový soubor windows.h, který přináší rozhraní pro služby operačního systému. Zjednodušeně řečeno, vložením hlavičkového souboru windows.h jsme do programu dostali možnost používat funkce operačního systému Windows.
Program tvoří jediná funkce WinMain nahrazující klasickou funkci main z jazyka C. Funkce vrací hodnotu typu int a pro překladač je uveden její typ jako WINAPI. Vstupní parametry jsou:
  • hInst - handle (což je něco jako ukazatel) aktuální instance programu
  • hPrevInst - handle předchozí instance programu
  • lpCmdLine - ukazatel na příkazový řádek (vzpomínáte na příkazy v DOSu? :-)). Pozor! Protože Windows CE používají pro text tzv. UNICODE, je tento parametr ukazatelem na 16bitové znaky a liší se od typu LPSTR ukazujícího na 8bitové znaky, který byste našli např. ve Win98.
  • nShowCmd - parametr určující jakým způsobem se otevře okno programu.
Pro bližší seznámení s parametry WinMain můžete prostudovat Help
V těle WinMain je volána pouze jediná funkce MessageBox. V našem jednoduchém programu nám nahrazuje funkci printf, která se často využívá pro výpis v prvních programech typu HelloWorld v různých kurzech jazyka C. MessageBox jistě znáte, neboť to jsou ta otravná okna s hlášením, že se něco nepovedlo, která neustále v některých programech vyskakují. Na jejich objevení můžete obvykle reagovat pouze kliknutím na OK.
MessageBox je velmi užitečná funkce, která se často používá ve fázi testování a ladění programu. Pomocí ní si lze zobrazit zprávu o tom, kde se v programu nacházíte a co se právě děje.
MessageBox má také 4 parametry. První z nich je handle okna, kterému hlášení patří (které jej posílá). V našem případě je okno samostatné - nebylo vygenerováno v rámci jiného programového okna. Proto je tento parametr NULL. Další parametr je textový řetězec, který bude vypsán jako hlášení a třetí parametr je opět textový řetězec s titulkem okna. Oba textové řetězce jsou zpracovány makrem TEXT(). Toto makro je velmi užitečné, protože zajistí správné vytvoření řetězce - ve Windows CE jako UNICODE a např. pro Win95 jako standardní řetezec 8bitových char znaků (podle nastavení přepínače pro UNICODE).
Posledním parametrem je předdefinovaný kód udávající, jakým způsobem se okno s hlášením má na obrazovce zobrazit. V tomto příkladě je použito běžné okno, u kterého můžete pouze kliknout na tlačítko OK. Doporučuji podívat se do Helpu na to, jaké další možnosti pro zobrazení MessageBox jsou k dispozici.
Máte-li program přepsán, můžeme přistoupit k jeho překladu a testování. Nejprve bude potřeba zvolit, pro jaký procesor a jaká verze programu bude generována. Nad panelem s editovaným souborem je nabídka se 4 rozbalovacími okénky.

obr. 5 Volba typu procesoru

V nich je potřeba nastavit, jaká verze kódu a pro jaký počítač bude vytvořena. Význam jednotlivých voleb:
  • První vlevo - Projekt na kterém pracujeme
  • Druhé vlevo - Cílový operační systém (verze)
  • Třetí vlevo - Procesor, pro který se kód vytvoří a varianta výsledného kódu. Release - čistý programový kód, Debug - kód obsahuje i informace pro ladění a je tedy podstatně větší.
  • Poslední vpravo - Stroj, na němž bude program testován.
Poznámka: Ladění přesahuje rámec tohoto kurzu, nebude tedy dále zmiňováno. Všechny testy uděláme přímo do Release varianty.
V příkladu zobrazeném na obr. 5 se projekt "Ahoj" přeloží pro verzi operačního systému "Pocket PC" pro procesor řady "Intel x86", varianta "Release" a bude poslán do emulátoru Pocket PC na počítači, kde program tvoříme.
Měli bychom být tedy připraveni na vytvoření svého prvního Windows CE programu. Jestliže je zdrojový kód připraven a je nastavena správná cílová konfigurace, můžeme přistoupit k překladu. Stačí kliknout na tlačítko Build(F7) nebo v nabídce Build zvolit Execute Ahoj.exe (Ctrl+F5). Překladač vytvoří spustitelný .exe program a ten se pak přenese do kapesního počítače nebo do emulátoru. V rámci spodního panelu můžete sledovat, jak překlad probíhá a zda se náhodou nevyskytl nějaký problém.
Pokud jste vše správně provedli, program se přenesl do počítače (emulátoru) nebo se i přímo spustil. V prvním případě jej objevíte v nabídce Start. Jak vypadá výsledný program v emulátoru Pocket PC si můžete prohlédnout na následujícím obrázku.

obr. 6 Výsledný program v emulátoru Pocket PC

Co bychom si měli z této lekce zapamatovat?

  • Projekt se ukládá do Workspace. Ten vytvoříme pomocí File->New, karta Projects.
  • Soubor do projektu přidáme pomocí File->New, karta Files.
  • Hlavní tělo programu tvoří funkce WinMain.
  • MessageBox je užitečná funkce pro výpis hlášení na obrazovku.
  • Pro každý překlad musíme mít nastavený správný typ operačního systému a procesoru.
  • Překlad spouštíme příkazem Build.
 

Buď první, kdo ohodnotí tento článek.

Nový komentář

Přihlásit se
  Ještě nemáte vlastní web? Můžete si jej zdarma založit na Blog.cz.