Premium

Získejte všechny články
jen za 89 Kč/měsíc

Programování PocketPC naruby (8/12)

Patříte mezi uživatele PocketPC, kteří by si rádi také něco naprogramovali, řadíte se však k tzv. falešným začátečníkům? Pak právě vám je určen náš seriál věnovaný programování pro kapesní počítače s Windows Mobile. Dnešní díl věnujeme instalaci a spuštění programu.

Minulý díl našeho seriálu Programování naruby jsme věnovali uživatelskému rozhraní. Dnes se blíže podíváme na instalaci prostředí a první spuštění programu. 

Po úspěšném naprogramování aplikace ji zkusíme přenést na kapesní počítač. Oba dva operační systémy mají z hlediska programátora tolik společných vlastností, že nepůjde o velký problém.

Instalace prostředí

Na webových stránkách společnosti Microsoft jsou v současnosti dostupné dvě verze vývojového prostředí pro platformu Pocket PC 2002 - Embedded Visual Tools 3.0 a 4.0 (.NET). V této kapitole si popíšeme stažení, instalaci a práci se starším z těchto vývojových prostředí, Embedded Visual C++ 3.0. To stáhnete zdarma ze stránek společnosti Microsoft z adresy http://msdn.microsoft.com/mobility/downloads/

Nejprve přejděte do sekce "Products and Updates"

Na stránce zvolte, že si přejete stáhnout "Embedded Visual Tools 3.0"

.. a dostanete se na následující stránku, kde je vám nabídnut soubor ke stažení.

Klikněte na tlačítko označené "Download", potvrdte smlouvu se společností Microsoft a stáhněte asi 215 MB velký instalační soubor. Vývojové prostředí je možné instalovat do podadresáře ve složce C:\Program Files\Microsoft eMbedded Tools\. Až se vás instalační program zeptá na sériové číslo, zadejte následující:

TRT7H-KD36T-FRH8D-6QH8P-VFJHQ

Pro psaní programů pro operační systém Pocket PC 2002 nebudete potřebovat žádné další soubory, ani programovací jazyk Visual Basic. Později si můžete ze stejné stránky stáhnout i kompilátory pro Windows CE 3.0 a Pocket PC 2000.

Chcete-li psát programy pro nejnovější verzi operačního systému Windows CE - Pocket PC 2003 (.NET), budete potřebovat vývojové prostředí Embedded Visual C++ 4.0, které je možné stáhnout podobným postupem ze stránek společnosti Microsoft.

Nový projekt

Prostředí Embedded Visual C++ 3.0 je stejné, na jaké jste zvyklí například z Visual C++ nebo jiných produktů firmy Microsoft. Vlevo nahoře je pohled na stromovou strukturu projektu, napravo nahoře okno pro editaci zdrojového textu a pod nimi okno pro výpis nalezených souborů, hlášení chyb při překladu a podobně.

Vytvořte nový projekt (WCE PPC 2002 Application), vyberte adresář a zvolte, že chcete vytvořit jednoduchou Windows CE aplikaci (A simple Windows CE application).

Prostředky a pomocné objekty

Při zobrazení ikony aplikace v nabídce programů vybírají Windows CE automaticky ikonu s nejnižším pořadovým číslem. Proto jako první vždy doplňte do projektu ikonu aplikace - nezapomeňte, že musí obsahovat dva obrázky - velký (32 x 32 bodů) pro nabídku programů a malý (16 x 16 bodů) pro uvedení aplikace v malém menu aplikací.

Popis prostředků aplikace, který používá Microsoft Visual C++ 6.0 pro operační systém Windows 98/2000/XP se v některých detailech liší od popisu, který používá prostředí Embedded Visual C++ 3.0. Proto doporučuji doplnit ikony a menu ručně (nesmíme zapomenout stejně pojmenovat identifikátory).

Oba dva pomocné objekty - Storage pro uložení dat a MyRegistryKey pro jednoduchý přístup do registru, můžete beze změny použít ve vaší aplikaci pro PocketPC. Její překlad by měl proběhnout bez chyb - typ TCHAR má nyní velikost dva byte, ale vzhledem ke korektní inicializaci všech textových konstant pomocí makra TEXT je vše v pořádku.

První spuštění a co bylo špatně

Nyní se pokusíme naši aplikaci beze změny přeložit pro počítače s operačním systémem Pocket PC a spustit v emulátoru. Překvapivě se při překladu objeví pouze tři chyby:


C:\My Documents\PocketPC\myprog\list\ppc0\list.cpp(191) : error C2731: 'WinMain' : function cannot be overloaded
        C:\My Documents\PocketPC\myprog\list\ppc0\list.cpp(187) : see declaration of 'WinMain'
C:\My Documents\PocketPC\myprog\list\ppc0\list.cpp(210) : error C2065: 'CS_CLASSDC' : undeclared identifier
C:\My Documents\PocketPC\myprog\list\ppc0\list.cpp(226) : error C2065: 'WS_OVERLAPPEDWINDOW' : undeclared identifier

Opravíme hlavičku funkce WinMain - přepíšeme typ argumentu z LPSTR (Windows) na LPTSTR (Windows CE) a podíváme se na druhé dvě chyby.


WNDCLASS wc = {   CS_CLASSDC|CS_VREDRAW|CS_HREDRAW,
                  MainWindowProc,
                  0, 0,
                  g_hInstance,
                  LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_PROGRAM)),
                  LoadCursor(NULL, IDC_ARROW),
                  (HBRUSH)(COLOR_WINDOW + 1),
                  MAKEINTRESOURCE(IDR_MENU),
                  g_szClass };

První z nic se týká vytvoření nové třídy okna; konstanta CS_CLASSDC, která nastavuje společný Device context (nastavení pro vykreslování grafiky) pro všechna okna dané třídy, není definována. Když se nad inicializací struktury WNDCLASS zamyslíme, můžeme z ní vypustit všechno, co nebudeme na Pocket PC potřebovat - překreslování okna při horizontálním a vertikálním pohybu, ikonu, kursor myši a menu.


WNDCLASS wc = {   0,
                  MainWindowProc,
                  0, 0,
                  g_hInstance,
                  NULL,
                  NULL,
                  (HBRUSH)(COLOR_WINDOW + 1),
                  NULL,
                  g_szClass };

Druhá změna se týká vytvoření okna. Ani konstanta WM_OVERLAPPEDWINDOW není definována. Prohlédneme-li si tabulku vlastností, které operační systém Windows CE podporuje, vidíme, že jediná kombinace stylů, která pro nás má smysl, je WS_VISIBLE a WS_CLIPCHILDREN.

Styl Význam
WS_BORDER Okno je ohraničené (nepoužíváme, protože okna na PocketPC zaujímají celou plochu displeje).
WS_CAPTION Okno má nadpis s titulkem. Tuto vlastnost nepoužijeme, protože nadpis okna je v horním proužku na displeji a nevytváříme okno se zvláštním titulkovým pruhem.
WS_CHILD Okno je potomkem jiného okna. Tuto vlastnost hlavní okno aplikace nepotřebuje.
WS_CLIPCHILDREN Není překreslována oblast pod potomky tohoto okna.
WS_CLIPSIBLINGS Pokud se potomci překrývají, není překrývající se oblast vykreslována.
WS_DLGFRAME Okno dialogu.
WS_HSCROLL, WS_VSCROLL Okno má horizontální nebo vertikální posuvník.
WS_OVERLAPPED Okno má titulek a okraj. Obojí by zbytečně zabíralo místo na displeji.
WS_POPUP Vyskakovací (Popup) okno.
WS_SYSMENU Okno má v titulkovém pruhu systémové menu.
WS_TABSTOP, WS_GROUP, WS_DISABLED Pro prvky dialogu - dostupnost pomocí tabulátoru, první prvek dialogu ze skupiny a prvek neinteragující s uživatelem.
WS_VISIBLE Okno je po vytvoření zobrazeno.

hwndMain = CreateWindowEx( 0,
                    g_szClass, szName,
                    WS_VISIBLE|WS_CLIPCHILDREN,
                    CW_USEDEFAULT, CW_USEDEFAULT,
                    CW_USEDEFAULT, CW_USEDEFAULT,
                    NULL,
                    NULL,
                    hInstance,
                    NULL);

Po opravení těchto dvou chyb můžeme aplikaci přeložit a spustit v emulátoru. Už na první pohled vidíme, že výsledek není zcela ideální. Hlavní okno aplikace zabírá celý displej. Pomocí klávesnice můžeme pracovat i s položkami seznamu. Kopie displeje emulátoru jsou na následujících dvou obrázcích:

 

Podrobné analýze toho, co musíme do naší aplikace doplnit se budeme věnovat v následujících dílech.

Zde můžete stáhnout zdrojové texty (ZIP) programu pro Windows 98/2000, přetažené do Embedded Visual C++ 3.0.
  • Nejčtenější

Neomezená data dává O2 ještě levněji než dříve. S odměnou jsou za hubičku

15. dubna 2024  7:02

Základní datově neomezený tarif za cenu nižší, než standardně stojí tarif s 12 GB dat? U O2 na...

Doma si natáhnete neviditelné kabely k internetu. Huawei ukázal inovace

17. dubna 2024

Huawei na každoroční roadshow ukázal v Praze své inovace pro letošní rok. Vedle průmyslových...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

K mobilu teď dostanete televizi zdarma a levnější jsou také iPhony

16. dubna 2024,  aktualizováno  10:12

Výrobci mobilních telefonů se už zase začínají předhánět ve výhodných nabídkách. Přímé slevy jsou...

Čínský smartphonový standard dorazil do Česka. Není co vytknout, ani cenu

17. dubna 2024  7:02

Motorola představila hned tři modely z top řady Edge. První se začne prodávat model Edge 50 Pro,...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Pošlete sportovní fotku a vyhrajte smartphone nebo dres Patrika Schicka

8. dubna 2024,  aktualizováno  18.4 13:04

Zachyťte na fotografii sportovní moment a vyhrajte úplnou novinku, smartphone vivo V40 SE s bohatou...

Mají dost kompromisů, sem tam něco navíc. Nejlevnější mobily známých značek

19. dubna 2024

Výrobci telefonů mají zpravidla řešení i pro ty zákazníky, kteří potřebují co možná nejlevnější...

Pošlete sportovní fotku a vyhrajte smartphone nebo dres Patrika Schicka

8. dubna 2024,  aktualizováno  18.4 13:04

Zachyťte na fotografii sportovní moment a vyhrajte úplnou novinku, smartphone vivo V40 SE s bohatou...

Tento podnik budou milovníci vína zbožňovat. Musí se ovšem vzdát mobilu

18. dubna 2024  12:33

Se zajímavým způsobem, jak strávníky přimět ke vzájemné komunikaci, přišel majitel restaurace v...

Ultra smartphone i odlehčená novinka. Motorola zahustila nabídku

18. dubna 2024

Společně s modelem Pro se na český trh chystají ještě další dvě novinky od Motoroly. Jednou je...

Akční letáky
Akční letáky

Všechny akční letáky na jednom místě!

Náhle zemřel zpěvák Maxim Turbulenc Daniel Vali, bylo mu 53 let

Ve věku 53 let zemřel zpěvák skupiny Maxim Turbulenc Daniel Vali. Letos by se svou kapelou oslavil 30 let na scéně....

Sexy Sandra Nováková pózovala pro Playboy. Focení schválil manžel

Herečka Sandra Nováková už několikrát při natáčení dokázala, že s odhalováním nemá problém. V minulosti přitom tvrdila,...

Charlotte spí na Hlaváku mezi feťáky, dluží spoustě lidí, říká matka Štikové

Charlotte Štiková (27) před rokem oznámila, že zhubla šedesát kilo. Na aktuálních fotkách, které sdílela na Instagramu...

Vykrojené trikoty budí emoce. Olympijská kolekce Nike je prý sexistická

Velkou kritiku vyvolala kolekce, kterou pro olympijský tým amerických atletek navrhla značka Nike. Pozornost vzbudily...

Rohlík pro dítě, nákup do kočárku. Co v obchodě projde a kdy už hrozí právník?

V obchodech platí pravidla, která občas zákazník nedodržuje. Někdy se navoní parfémem, aniž by použil tester, nebo...