jc/md/lp-01/06Applications1 Émulateur
jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application Téléchargement des applications Test des applications
jc/md/lp-01/06Applications3 Génération dune application Le but nest pas de faire un système nu, mais bien dexécuter une ou plusieurs applications supportées par un noyau installé dans la cible Platform Builder dispose des outils pour créer des applications, avec plusieurs stratégies possibles Il faut ensuite transférer dans la cible le noyau et les applications préparés puis déclencher leur exécution
jc/md/lp-01/06Applications4 Génération application méthode #1 Préparation dun noyau et dune application.exe ou dune dll comme on le ferait avec un système de développement classique Association du noyau et des applications par Build Platform et dans une image par Make Image Téléchargement (Download) dans la cible Déclenchement dans la cible par la commande Exécuter, habituelle sous Windows ou à partir de Platform Builder par Run Program
jc/md/lp-01/06Applications5 Génération (build) : méthode #1 ApplicationNoyau Noyau & Application Image Mémoire Build Téléchargement
jc/md/lp-01/06Applications6 Génération application méthode #2 Construction dun noyau par Build Platform Préparation dun exécutable.exe ou dune dll sous loutil de développement Association du noyau et des applications dans une image par Make Image Téléchargement (Download) dans la cible Déclenchement depuis la cible par la commande « Exécuter » habituelle sous Windows ou à partir de Platform Builder par Run Program
jc/md/lp-01/06Applications7 Génération (build) : méthode #2 Application ou driver Noyau Noyau & Application Image Mémoire Make Image Téléchargement Application ou driver Noyau Build.exe.dll Build Platform
jc/md/lp-01/06Applications8 Génération application méthode #3 Construction dun noyau par Build Platform Préparation dun exécutable.exe ou dune dll comme on le ferait avec un système de développement classique Téléchargement du noyau dans la cible Téléchargement dans la cible de lapplication par la commande Run Program
jc/md/lp-01/06Applications9 Génération (build) : méthode #3 ApplicationNoyau Image noyau Mémoire Run Program Téléchargement ApplicationNoyau Build.exe Build Platform Application cible
jc/md/lp-01/06Applications10 Applications Création de 2 applications –WCE Console Application –WCE Application Ces applications ne seront pas incluses dans le noyau, mais seront téléchargées indépendamment du noyau Ces applications feront uniquement de limpression de texte
jc/md/lp-01/06Applications11 Ouverture dune plate-forme disponible Plate-forme disponible par opposition à création dune plate-forme Par la page daccueil, au centre –Choix dune plate-forme proposée –Bouton « Open Workspace » puis sélection Par lentrée « File » du menu principal –Sous-menu « Open Workspace » –Sous-menu « Recent Workspaces » Double click sur un nom de fichier avec un suffixe.pwb
jc/md/lp-01/06Applications12 Ouverture plate-forme proposée
jc/md/lp-01/06Applications13 Bouton « Open Workspace »
jc/md/lp-01/06Applications14 Projet CONSOLE_APP Appel de lassistant Renseignement des options Choix du nom du projet Choix des options de génération Écriture du code source dans le fichier préparé Génération de lapplication Téléchargement dans la cible Exécution de lapplication Fin de lexécution
jc/md/lp-01/06Applications15 FileNew Project or File
jc/md/lp-01/06Applications16 Choix : WCE Console Application Renseigner ce champ
jc/md/lp-01/06Applications17 Choix : A simple Windows CE…
jc/md/lp-01/06Applications18 Application CONSOLE_APP Ouverture par double click
jc/md/lp-01/06Applications19 Fichier initial CONSOLE_APP.cpp
jc/md/lp-01/06Applications20 PlatformSettings
jc/md/lp-01/06Applications21 Build, but exclude from image
jc/md/lp-01/06Applications22 Programme CONSOLE_APP.cpp #include "stdafx.h" #include int main(int argc, char *argv[], char *envp[]) { printf("Appuyez sur 'Entrée' pour continuer\n"); getchar(); //attente dun caractère quelconque printf("Appuyez sur 'Entrée' pour terminer\n"); getchar(); //attente dun caractère quelconque return 0; }
jc/md/lp-01/06Applications23 Génération de lapplication
jc/md/lp-01/06Applications24 Exécution de lapplication Configurer la cible TargetConfigure Remote Connection Charger le noyau TargetDownload/Initialize Charger et lancer lapplication TargetRun Program CONSOLE_APP.exe OK Fermer lémulateur et la connexion
jc/md/lp-01/06Applications25 Chargement du noyau
jc/md/lp-01/06Applications26 Fenêtre cible en attente
jc/md/lp-01/06Applications27 Commande de chargement
jc/md/lp-01/06Applications28 Sélection du programme
jc/md/lp-01/06Applications29 Exécution après « Entrée »
jc/md/lp-01/06Applications30 Fermeture de la cible par licône
jc/md/lp-01/06Applications31 Déconnexion de lémulateur
jc/md/lp-01/06Applications32 Fin de session démulation On arrive directement à la fenêtre de confirmation par licône adéquate de la barre des tâches Approuver la demande de confirmation Le système est prêt pour une nouvelle émulation Un message complémentaire pourra apparaître dans certains cas voisins
jc/md/lp-01/06Applications33 Projet WCE_APP La démarche est la même que pour le projet CONSOLE_APP Appel de lassistant, choix des options, du nom Écriture du code Génération Téléchargement Essai Fin de la session
jc/md/lp-01/06Applications34 Création dune WCE Application
jc/md/lp-01/06Applications35 A simple Windows CE application
jc/md/lp-01/06Applications36 Code proposé
jc/md/lp-01/06Applications37 Messages Pour afficher des messages en mode « WCE application » on utilise la fonction MessageBox qui crée une fenêtre et affiche un message On dispose du bouton « OK » pour fermer la fenêtre Les arguments permettent de donner un nom à la fenêtre, ladresse du message La fonction retourne une valeur numérique qui caractérise la réponse de lutilisateur
jc/md/lp-01/06Applications38 Fonction MessageBox int MessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType ); Parameters hWnd :[in] Handle to the owner window of the message box to be created. If this parameter is NULL, the message box has no owner window. lpText :[in] Pointer to a null-terminated string that contains the message to be displayed. lpCaption : [in] Pointer to a null-terminated string that contains the dialog box title. If this parameter is NULL, the default title Error is used. uType :[in] Specifies the contents and behavior of the dialog box. This parameter can be a combination of flags from the following groups of flags, etc. Return Values Lentier retourné informe sur le comportement.
jc/md/lp-01/06Applications39 WCE_APP.cpp #include "stdafx.h" #include int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { MessageBox(NULL,_T("clicker sur 'OK' pour continuer"), _T("WCE_app"),MB_OK| MB_ICONINFORMATION); MessageBox(NULL,_T("clicker sur 'OK' pour terminer"), _T("WCE_app"),MB_OK| MB_ICONINFORMATION); return 0; }
jc/md/lp-01/06Applications40 Option de génération de la cible
jc/md/lp-01/06Applications41 Génération de WCE_APP.exe
jc/md/lp-01/06Applications42 Exécution de lapplication Configurer la cible TargetConfigure Remote Connection Charger le noyau TargetDownload/Initialize Charger et lancer lapplication TargetRun Program WCE_APP.exe OK Fermer lémulateur et la connexion
jc/md/lp-01/06Applications43 Première fenêtre observée
jc/md/lp-01/06Applications44 Seconde fenêtre observée
jc/md/lp-01/06Applications45 Fin de session Même résultat que dans la fin de lexemple CONSOLE_APP, mais cette fois on utilise les icônes Fermeture de la fenêtre cible par licône standard sous Windows et acceptation de la confirmation Déconnexion de lémulateur par licône de la barre doutils « Target » de Platform Builder et acceptation de la confirmation
jc/md/lp-01/06Applications46 Fermeture fenêtre par licône
jc/md/lp-01/06Applications47 Déconnexion de session par licône
jc/md/lp-01/06Applications48 Conclusion Premiers exemples de réalisations dapplications simples sous Windows CE