| |
|
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
|
|