Le premier site francophone dédié au développement Pocket PC


Initiation au développement sur PocketPC
 
   


Objectif de cet article


De nombreux utilisateurs de PocketPC désirent "bidouiller" leur machine et écrire de petits programmes pour leur machine de poche. Je vais essayer de vous donner les bases pour commencer à développer sur PocketPC, et choses encore plus délicate, je vais essayer de m'adresser a tout le monde, même si vous n'avez jamais écrit un programme de votre vie. Si vous lisez cet article et que des points semblent obscurs voir incompréhensibles alors réagissez sur le forum de développement eVC, et je ferais évoluer cet article selon les réactions et les demandes.

Do you speak English ?

iPAQdev est un site francophone, mais le monde de l'informatique évolue essentiellement en Anglais. Tous les nouveaux produits sortent d'abord en Anglais puis sont localisés si le nombre d'utilisateur est suffisant. Pas de chance, sur PocketPC les outils pour écrire des programmes n'existent qu'en Anglais. Sortez vos dictionnaires.

Les outils

Vous allez avoir besoin d'outils particuliers. Ils sont gratuits, ce sont les Embedded Visual Tools 3.0 (c'est parti pour l'anglais), et vous pouvez les obtenir de deux façons. Soit par téléchargement (vous trouverez le lien sur la page "liens") mais attention cela fait 304 MO (12 heures avec un modem 56K), ou par courrier sur demande téléphonique chez Microsoft France au 0.825.827.829 référence "POCKET PC EVT 3" (http://www.microsoft.com/france/pocketpc/developpeur.asp)
Regardez le paragraphe installation plus bas pour savoir comment utiliser ces outils.
Avant de commencer vous devez avoir votre PocketPC en état de marche, surtout la partie synchronisation, donc ActiveSync fonctionne correctement quand vous posez votre machine sur son socle.


Le commencement : un programme

Je vais essayer de résumer le fonctionnement d'un ordinateur. Si vous connaissez passez au chapitre suivant.
Au cœur de votre PocketPC vous avez un microprocesseur. Cette puce est spécialisée dans les additions et sait prendre des décisions. Ce qui fait sa force c'est que les instructions qu'elle exécute sont dynamiques, vous pouvez donc la programmer selon vos spécifications.
Vous avez également la mémoire (ou RAM) qui est l'endroit ou sont stockés toutes les informations. Le microprocesseur a très peu de mémoire et utilise la RAM pour retrouver un gros volume d'informations. Le microprocesseur peut lire et écrire en mémoire. On peu faire un comparatif avec le fonctionnement du cerveau humain. Nous avons une mémoire à cours terme qui est très volatile, et nous sommes obligé de noter dans un cahier les informations que nous désirons retrouver plus tard. Pour produire un raisonnement nous utilisons votre mémoire à cours terme et les infos sur notre cahier. Et bien un microprocesseur fonctionne selon le même principe.
Maintenant ajoutons à notre cahier un dictionnaire. Quand vous avez allumé votre PocketPC pour la première fois vous avez vu fonctionner Windows CE, le système d'exploitation (ou OS) de votre machine. Pour cela le microprocesseur utilise de la mémoire morte (ou ROM), que l'on peu comparer à un dictionnaire. La ROM contient les règles qui définisent comment fonctionne Windows CE. Dans notre cahier nous pouvons lire et écrire des informations, mais pour cela on utilise les règles qui sont dans le dictionnaire. Et bien pour utiliser un OS il faut suivre les règles de cet OS, c'est cela faire un programme, c'est écrire une série d'instructions qui suivent des règles.
Crayon rouge ou crayon vert ? Pour écrire dans notre cahier nous pouvons choisir un crayon rouge ou un crayon vert. Dans tous les cas nous avons écris nos instructions en suivant les règles du dictionnaire. L'informatique permet aussi ce choix, c'est ce qu'on appel un langage. Sur PocketPC vous avez deux langages très présent qui sont Visual Basic (VB) et C++. Ces langages permettent de faire presque la même chose, mais ils ont des syntaxes différentes. Ne pas confondre la syntaxe et les règles de l'OS. La syntaxe existe pour simplifier l'écriture des programmes, car écrire directement en suivant les règles de l'OS c'est trop complexe. Après une phase de compilation le langage transforme sa syntaxe dans un format compris par l'OS. Nous allons travailler avec le langage C++.
Un programme est un fichier particulier, qui contient des instructions pour l'OS. On le distingue des autres fichiers par son extension .EXE.

Cycle de développent sur PocketPC

Notre machine de poche fait beaucoup de chose, mais elle n'est pas assez puissante pour générer un programme utilisant la syntaxe C++. Le cycle de développement (ou écriture de programme) est donc le suivant :
1. Sur notre ordinateur de bureau (PC), avec l'aide d'eVC on écrit un programme en suivant la syntaxe C++
2. On demande à eVC de générer notre programme au format OS PocketPC en local sur le PC
3. On dépose le programme sur le PocketPC
4. Nous pouvons maintenant utiliser notre programme.

Installation d'eVC

Ici tout se passe en Anglais, mais pas d'inquiétude en conservant les valeurs par défaut vous installerez ce qu'il faut. Je vais décrire le processus pour la version sur CD. Prévoyez 350 MO d'espace disque.

Normalement en insérant le CD dans votre lecteur cela démarre automatiquement sinon exécutez setup.exe sur le CD.

Premier écran avec un bouton "View Readme" => "Next"
Deuxième écran avec la licence. Vous sélectionnez "I Accept" puis "Next."
Troisième écran numéro de licence. Vous l'entrez puis "Next"
Quatrième écran liste des options. Ne touchez à rien "tout est sélectionné" puis "Next"
Cinquième écran dossier d'installation des outils. A vous de voir, si vous ne savez pas "Next"
A ce stade on change de programme, et une boite "eMbedded Visual Tools Setup" apparaît, vous sélectionnez "Continue" puis "OK"
Une liste apparaît, et demande quels outils installer parmi une liste de 3. Garder la valeur par défaut (tout est coché), ainsi on installe Visual Basic également. Vous pouvez aussi changer le dossier d'installation à ce niveau. Bouton "Continue".
La copie des fichier commence, attendez quelle se termine.
On vous demande de changer de CD, allez y puis "OK"

Démarre la partie Windows CE platform SDK 3.0
Premier écran Welcome => "Next"
Deuxième écran licence, "Yes"
Troisième écran infos utilisateur, remplissez puis "Next"
Quatrième écran dossier d'installation, ne changez rien puis "Next"
Cinquième écran choix d'installation, gardez "typical" puis "next"
Sixième écran, nom du dossier pour le menu démarrer, ne changez rien puis "next"
Septième écran, récapitulatif avant la copie, "next"
La copie démarre
Neuvième écran, "Finish"

Démarre la partie Windows CE platform SDK 1.2
Suivez les mêmes écran que la version 3.0 et c'est bon.

Enfin démarre la partie eMbedded SDK for PocketPC
Premier écran "Welcome", appuyez sur "Next"
Deuxième écran licence, "I Accept" puis "Next"
Troisième écran infos utilisateur, remplissez puis "Next"
Quatrième écran dossier d'installation, ne changez rien puis "Next"
Cinquième écran choix d'installation, gardez "complete" puis "next"
Sixième écran, "ready to install", "Install"
La copie démarre
Septième écran, "finish"

Ouf, vous voilà arrivé à la fin. Donnez vous une tape sur l'épaule, vous l'avez bien mérité.

Découverte de l'environnement

Il est temps de découvrir eVC, vous allez passer pas mal de temps avec. Lancez le depuis le menu Démarrer->Programmes->Microsoft eMbedded Visual Tools->eMbedded Visual C++ 3.0.
Cet environnement de travail est un tout en un. Il vous propose un éditeur de texte pour écrire les programmes, un gestionnaire de projet pour lister les fichiers avec lesquels vous travaillez, une aide en ligne (touche F1) pour vous assiter, et beaucoup d'autres choses.
Nous allons tester que tout fonctionne.
Dans le menu "File" vous sélectionnez "New…"
Activez l'onglet "Projects" et dans la liste prenez "WCE Pocket PC Application". Dans Location tapez "c:\temp" puis dans project name "test". Enfin faites "OK"



Sur l'écran "WCE Pocket PC Application" sélectionnez "A simple Windows CE application" puis "Finish".

Avec toute ces commandes nous avons généré un environnement de développement complet, avec des fichiers déjà présents dans le projet, et le squelette d'une application, il ne reste plus qu'a remplir les blancs.
Pour cela nous allons ouvrir le fichier test.cpp. C'est un fichier texte qui contient quelques lignes générés par l'assistant de projet. Pour cela dans la fenêtre 1 (voir ci-dessous) sélectionnez l'onglet FileView, puis ouvrez l'arborescence pour voir apparaître test.cpp et double cliquer dessus. Ce fichier s'ouvre dans le fenêtre 2.

Nous allons remplacer la ligne "// TODO : Place code here " par
MessageBox (NULL, TEXT("Mon premier programme"), TEXT("iPaqDev"), MB_OK);
Attention de bien respecter la syntaxe, et par exemple ne pas oublier le point virgule en fin de ligne. Je vous conseille de faire un copier coller.

Compiler un programme, c'est l'action de transformer la syntaxe C++ en un programme format OS. Avant de compiler il faut choisir le type de processeur que possède votre machine. Si vous avez un iPaq votre processeur est un ARM. Le choix se fait dans la fenêtre 4. Pour connaître le type de votre processeur regardez les spécifications du constructeur. Choisissez la version debug, donc toujours pour un iPaq vous devez avoir "Win32 (WCE ARM) debug".
Poser votre PocketPC sur son socle, allumez le et attendez qu'ActiveSync démarre.


On peut lancer la compilation, allez dans le menu "Build" puis "Build test.exe". Pendant cette phase des messages défilent dans la fenêtre 3, puis une barre de progression indique le téléchargement du programme dans la machine.
Si tout c'est bien passé vous avez "test.exe - 0 error(s), 0 warning(s)" qui apparaît dans la fenêtre 3.

Nous allons démarrer (ou exécuter) le programme, pour cela dans le menu "Build" choisisser "Execute test.exe".

L'émotion est au maximum, vous venez de faire votre premier programme pour PocketPC. Pour arrêter ce programme appuyez sur le rond  (ok) avec le stylet.

 

Langage C++ et API Win32

En réalité quand on débute dans l'écriture de programme il faut apprendre deux choses. D'abord le langage C++ par lui même, puis l'API (Application Program Interface). Le langage va donner la logique du programme, l'API va donner les outils pour utiliser l'OS, ici Windows. Par exemple MessageBox est l'API pour afficher une boite de message.

La bonne nouvelle c'est que les API WindowsCE et Windows 95 se ressemblent. Mon conseil c'est d'apprendre à vous débrouiller dans l'écriture de programmes pour Windows 95, puis quand vous savez ce que vous faites, passer sur PocketPC (API WindowsCE). Il existe des compilateurs gratuits pour Windows 95, mais aussi Visual C++ qui est en fait la même chose que eVC mais pour Windows 95 (< 850 F)

 

Un petit exemple C++

Je vais vous montrer comment prendre des décisions en C++
Je veux faire une remise de 5% pour mes clients ordinaires, et 10% pour mes bons clients. Un bon client c'est quand il a acheté pour plus de 500F.

Vous pouvez visualiser le code C++ en cliquant ici.

Une variable c'est une valeur qui peut changer. On donne un nom aux variables et ont leur assigne des valeurs. Dans notre exemple, on donne à la variable TotalAchat la valeur 700, qui est le total des achats de notre client. AchatDuJour contient les achats du jour. Ici double indique que nous travaillons avec des valeurs numériques avec des virgules.
Le test if compare le total des achats avec notre limite de 500 francs. Si nous avons une valeur supérieure à 500 on utilise la remise de 10%, sinon c'est une remise de 5%.
Pour le calcul du prix remisé, on applique la formule prix remisé = prix article - remise%.
Ensuite il faut formater le résultat, c'est ce que fait l'API swprintf, elle stocke dans la variable Message, qui a une taille de 128 caractères, le texte selon le format qui se trouve dans TEXT("").

C'est l'occasion  d'apprendre à utiliser l'aide. Dans eVC mettez le curseur sur le mot swprintf, puis appuyez sur la touche F1. Une page d'aide s'ouvre et vous indique la syntaxe précise de l'API swprintf.

Enfin on retrouve MessageBox, pour afficher le résultat sur l'écran.


Comment continuer ?

Si vous rencontrez C++ pour la première fois des centaines de questions doivent vous traverser l'esprit. Il faut bien voir qu'il est impossible de répondre à toutes ces questions dans le cadre d'un article comme celui ci. Mais rassurez vous je ne vais pas vous laisser sans rien et voici quelques références pour bien continuer.

Pour progresser en C++ LE lien avec des cours en Français est : http://www.developpez.com/c/cours.htm#cpp
Le mieux reste d'investir dans un livre sur le C++, je ne vous conseille pas de titre, je vous conseille de feuilleter avant d'acheter pour voir si le style vous convient. Un maximum d'exemple c'est important.

Pour apprendre l'API Windows, LE lien en Anglais est : http://www.winprog.org/tutorial/
Je n'ai rien trouvé en Français.
Le livre qui semble faire l'unanimité, mais je ne le connais pas, c'est le Charles Petzolt chez Microsoft Press.

Le lien pour retrouver un maximum d'info est http://www.developpez.com/ Vous y trouverez par exemple une page sur le compilateur C++ gratuit pour Windows 95 de chez Borland.


Conclusion

Au fur et à mesure de l'écriture de cet article je me suis rendu compte que ce n'est vraiment pas simple d'utiliser tout cet environnement. Ne vous découragez pas, il faut consacrer pas mal de temps avant de comprendre comment tout fonctionne. Avancer par étape, et fixez vous des objectifs simples à atteindre. J'espère que cet article vous auras incité à franchir le pas, et à passer du stade utilisateur au stade du concepteur, vous savez un concepteur, comme dans le film Tron, thème visuel d'iPAQdev

Rémi THOMAS

 

 
       
   
 
   
Copyright 2001-2004 - Tous droits réservés
 
   

iPAQ est un produit de COMPAQ.
Visual Tools est un produit de Microsoft Corporation.
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.