Sign in Join
Wiki copytemporary

Windows CE Interface/fr: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## Introduction
22
33La mise au point de l'interface Windows CE a été commencé par Felipe Monteiro de Carvalho et s'est poursuivie par Roozbeh et d'autres contributeurs. L'interface a commencé en 2006 avec un compilateur FPC pour Windows CE encore en développement. Une version stable du compilateur a été réalisée en 2007, ce qui a rendu possible de réaliser une extension (add-on) pour WinCE avec la version 0.9.24 de Lazarus.
44
55En raison d'une mauvaise expérience avec le partage de code entre différentes interfaces dans le passé avec les interfaces gtk/gtk2, il a été décidé de commencer avec un code propre à WinCE. Comme les API sont très similaires, une grande partie du code de l'interface WinCE provient de l'interface Win32/64.
66
77## Configuration de l'interface Windows CE
88
99Pour configurer l'interface Windows CE, vous devez soit utiliser l'installateur d'extension, soit configurer l'interface manuellement. Les deux options sont détaillées ci-dessous. L'utilisation de l'extension est, bien sur, plus simple.
1010
1111### Utilisation de l'installateur d'extension
1212
1313Avec la première release de Free Pascal pour Windows CE, l'installation d'un environnement de développement pour WinCe n'a jamais été aussi simple.
1414
1515Guidage pas à pas:
1616
1717- Installer la dernière version de Lazarus pour windows à partir de SourceForge: <http://sourceforge.net/project/showfiles.php?group_id=89339>
1818
1919- Télécharger et installer l'installateur d'extension pour la version Lazarus téléchargée. Il est situé sur la même page SourceForge.
2020
2121- Vous pouvez maintenant compiler des applications Win32 et des applications arm-wince à partir de Lazarus en modifiant les options du compilateur:
2222 - Widget set: wince
2323 - Target OS: wince
2424 - Target CPU: arm
2525
2626### Configurer manuellement l'interface Windows CE
2727
2828*traduction approximative - je n'ai pas essayé cette procédure* -
2929
3030Alors que la version 0.9.24 a été réalisée avec la version 2.2.0 stable du compilateur FPC pour windows CE, la version de développement de Lazarus requiert maintenant la version 2.2.1 ou ultérieure de FPC. Vous trouverez ici les instructions pour mettre à jour cet environnement :
3131
3232**Etape 1** - Pour commencer, vous devez recompiler le compilateur pour Windows pour créer un "cross-compilateur" Windows CE- ARM. Les instructions sont ici : [[WinCE port]].
3333
3434- Utiliser TortoiseSVN pour récupérer la dernière version 2.2.1 : <http://svn.freepascal.org/svn/fpc/branches/fixes_2_2/>
3535
3636- Créer alors un script comme celui pour construire votre compilateur à partir de la version FPC 2.2.0 installée (aussi bien à partir de Lazarus que d'une installation séparée):
3737
3838 cd compiler
3939 PATH=C:\Programas\lazarus220\fpc\2.2.0\bin\i386-win32
4040 make cycle CPU_TARGET=arm OS_TARGET=wince
4141 cd ..
4242 pause
4343
4444**Etape 2** - Vous avez besoin de compiler FCL (Free Component Library) avec la nouvelle compilation. Instructions [[WinCE port|ici]].
4545
4646- Cet astucieux script rend cela plus facile (ne pas oublier de mettre les chemins correspondants à votre machine). OPT="-FU... placera toutes les unités au même emplacement, ce qui est très pratique. :
4747
4848 cd packages
4949 PATH=C:\Programas\lazarus220\fpc\2.2.1\bin\i386-win32
5050 make clean all CPU_TARGET=arm OS_TARGET=wince PP=ppcrossarm.exe OPT="-FUC:\Programas\lazarus220\fpc\2.2.1\units\arm-wince"
5151 cd ..
5252 pause
5353
5454**Etape 3** - Placer le fichier script ci-dessous à la racine de votre dossier Lazarus et exécuter le :
5555
5656 PATH=C:\Programas\lazarus\pp\bin\i386-win32;c:\Programas\arm
5757 make lcl LCL_PLATFORM=wince PP=ppcrossarm.exe CPU_TARGET=arm OS_TARGET=wince
5858
5959Cela devrait compiler LCL pour Windows CE.
6060
6161**Etape 4** - "Cross-compiler" le LazarusPackageIntf et vous pourrez utiliser les composants visuels de la 3rd party. aller dans lazarus\packager\registration et faire:
6262
6363 PATH=C:\Programas\lazarus\pp\bin\i386-win32;c:\Programas\arm
6464 make PP=ppcrossarm.exe CPU_TARGET=arm OS_TARGET=wince
6565
6666NOTE: vous devez spécifier dans votre chemin vers les unités des projets \$(LazarusDir)\packager\units\\\$(TargetCPU)-\$(TargetOS)\\ (ajouter FCL devrait faire cela).
6767
6868**Etape 5** - Maintenant, vous pouvez utiliser l'IDE Lazarus pour définir, compiler et déboguer votre application.
6969
7070- Vous pouvez aussi utiliser des scripts similaire pour complier vos applications:
7171
7272 PATH=C:\Programas\lazarus\pp\bin\i386-win32;c:\Programas\arm
7373 ppcrossarm.exe -Twince -FuC:\Programas\fpc\rtl\units\arm-wince -FDC:\Programas\arm -XParm-wince- test.pas
7474 ppcrossarm.exe -Twince -FuC:\programas\lazarus\lcl\units\arm-wince -FuC:\programas\lazarus\lcl\units\arm-wince\wince -FuC:\Programas\fpc\rtl\units\arm-wince -FDC:\Programas\arm -XParm-wince- windowtest.pas
7575
7676### Compiler un projet Windows CE avec l'IDE Lazarus
7777
7878REMARQUE : récemment, un fichier "wincemenures.or" est indiqué manquant lors de l'édition de lien (linking). Vous devez juste copié ce fichier de "lazarus/lcl/interfaces/wince" vers "lazarus/lcl/units/arm-wince" et tout devrait alors fonctionner.
7979
8080Tout fonctionne comme avec les autres interfaces et OS. Vérifier que vous avez bien sélectionner wince dans le champ Type composant graphique (LCL) divers dans l'onglet Chemins du menu **Projet \> Option du compilateur...** et dans l'onglet **Code** sélectionner **WinCE** comme OS de destination et **arm** comme CPU de destination. Vous devez aussi changer le **Chemin du compilateur** dans le menu **Outils \> Options d'environnement...** pour pointer sur le compilateur ppcrossarm.exe compiler.
8181
8282L'IDE est maintenant prêt pour compiler vos projet Windows CE.
8383
8484### Débogage d'un logiciel pour Windows CE à partir de l'IDE Lazarus
8585
8686Vous pouvez aussi déboguer des applications créer avec l'IDE Lazarus.
8787
8888**Etape 1** - Dans l'IDE Lazarus, aller au menu **Configuration \> Option du débogueur...**. Modifiez le chemin du débogueur pour pointer sur le dossier où se trouve gdb pour WinCE. Vous pouvez vous procurer ce débogueur ici <ftp://ftp.freepascal.org/pub/fpc/contrib/cross/gdb-6.4-win32-arm-wince.zip>
8989
9090**Etape 2** - Si vous utilisiez Microsoft Device Emulator précédemment, lancez-le (ou relancez-le). Vérifiez que vous lancer l'émulateur avec 128mo de ram. Sélectionnez un dossier pour le partage de fichiers dans l'émulateur, et copiez la commande dans votre fichier .bat utilisé pour construire le fichier exe compilé dans votre dossier partagé, add copy command to your .bat file used for building your application to copy the compiled exe file to your shared path.(as you can see in my .bat file). Vous avez ci-desous un fichier .bat que vous pouvez utiliser pour démarrer l'émulateur avec 128mo de ram.
9191
9292 start deviceemulator.exe ".\ppc_2003_se\PPC_2003_SE_WWE_ARMv4.bin" /memsize 128 /skin
9393 ".\ppc_2003_se\PocketPC_2003_Skin.xml"
9494
9595Après cela, il suffit de choisir 'save and exit' lorsque vous voulez quitter l'émulateur. Pour le relancer, on pourra le faire à partir des raccourcis créés dans votre menu Démarrer.(raccourci avec '(restore)').
9696
9797**Etape 3** - Lancez le programme **Device Emulator Manager** et dans la liste des émulateurs disponible, cliquer avec le bouton droit sur le nom de l'émulateur et choisir la fonction **cradle**. Le logiciel Microsoft ActiveSync doit maintenant être lancé. Si il ne se passe rien dans ActiveSync, allez dans le menu **File-\>Get connected**. Si cela ne uffit pas pour qu'Activesync reconnaisse l'émulateur, choisir dans le menu Actions, la fonction Uncradle puis Cradle dans l'émulateur.
9898
9999**Etape 4** - Copiez le fichier exe compilé avec l'explorateur de fichiers dans votre émulateur dans le dossier \gdb. Si c'est la première fois que vous utilisez l'émulateur, vous devez créer un dossier gdb dans le dossier 'My Pocket PC' qui se trouve dans votre dossier racine (\\).(Pour gagner du temps, aller dans votre répertoire partagée, faites ctrl+c sur le fichier exe puis aller dans le dossier \gdb, et à chaque nouvelle compilation, faites tout simplement ctrl+v).
100100
101101**Etape 5** - Maintenant, vous pouvez déboguer votre application. gdb pour WinCE doit être lancer. cela va copier arm-wince-pe-stub.exe dans le dossier \gdb et chercher si le fichier .exe de votre application est présent. dans ce cas, le programme sera lancé. Dans beaucoup de cas, à cause de la taille importante des fichiers exe, vous ne pouvez pas les copier dans le dossier \gdb. Il faut alors lancer l'émulateur avec 128mo de ram alors qu'il se lance par défaut avec 64mo de ram.
102102
103103**Quelques conseils**
104104
1051051\. Les programmes restent en mémoire même après qu'on en soit sorti. Aussi, il n'est pas possible de les écraser. Vous devez utiliser des outils tel que Process Viewer de Microsoft qui vous montre tout les processus en cours et qui vous permet de les "tuer". Vous pouvez également utiliser process killers dans l'émulateur. le logiciel Process Explorer est une autre option. Vous pouvez l'obtenir à cette adresse : <http://madebits.com>
106106
1071072\. Chaque fois que vous lancez avec le débogueur votre programme, ne quitter pas ce programme. Faire un reset du programme puis du débogueur. Notez que le programme reste quelquefois en mémoire ce qui vous obligera à "tuer" le processus.
108108
109109### Intallation et utilisation de l'émulateur Pocked PC
110110
1111111 - Vous pouvez télécharger l'émulator de Pocket PC Emulator à partir du site Microsoft [here](http://www.microsoft.com/downloads/details.aspx?FamilyId=C62D54A5-183A-4A1E-A7E2-CC500ED1F19A&displaylang=en). First, Téléchargez puis installez le fichier V1Emulator.zip.
112112
1131132 - Ensuite, faites attention car il y a une information erronée sur le site web. Il est dit que vous devez installer le Virtual Machine Network Driver, mais le lien donnée sur le site est cassé. A la place, téléchargez Virtual PC 2007 [here](http://www.microsoft.com/downloads/details.aspx?FamilyID=04d26402-3199-48a3-afa2-2dc0b40a73b6&DisplayLang=en). Cela installera les drivers nécessaires. D'après le site Microsoft, la version familiale de XP n'est pas supportée. Si vous êtes sur ce système, vous pouvez installer sans problème Virtual PC (En fait, Microsoft n'assure pas de suivi en cas de problème sur cet OS).
114114
1151153 - Maintenant revenez sur le premier site, téléchargez et installez le fichier efp.msi.
116116
117117Vous devriez avoir maintenant un émulateur Pocket PC fonctionnel qui peut être utilisé conjointement avec Lazarus pour développer des applications
118118
119119Pour exécuter une application Lazarus sur l'émulateur, vous pouvez soit utiliser GDB via ActiveSync soit l'exécuter directement à partir de l'émulateur.
120120
121121#### Lancer une application à partir de l'émulateur
122122
1231231 - Aller dans le menu **démarrer \> tous les programmes \> Windows Mobile Emulator Images \> PocketPC**
124124
1251252 - Si vous n'avez jamais configuré votre dossier partagé pour l'émulateur, faites le maintenant en cliquant sur le menu **File \> Configure** une fois l'émulateur ouvert. Indiquez le dossier où vous pourrez accéder à vos exécutables Windows CE créés avec Lazarus.
126126
1271273 - Dans l'émulateur, cliquez : **Start --\> Programs**. Sélectionnez alors "File Explorer". Sélectionnez "Storage Card" et naviguez jusqu'à ce que vous trouviez votre exécutable. Double-cliquez pour l'exécuter.
128128
129129## Screenshots
130130
131131Des exemples de Lazarus+WinCE et du logiciel Free Pascal utilisé pour tester le cross compiler:
132132
133133![](/wiki-images/e/e5/Capture_2.jpg) ![](/wiki-images/d/d7/Wince.PNG)
134134
135135## How to add a new control
136136
137137For example TButton.
138138
139139TButton is defined in lcl/buttons.pp. This is the platform independent part of the LCL, which is used by the normal LCL programmer.
140140
141141Its widgetset class is in lcl/widgetset/wsbuttons.pp. This is the platform independent base for all widgetsets (qt, carbon, gtk, win32, ...).
142142
143143It's wince interface class is in lcl/interfaces/wince/wincewsbuttons.pp:
144144
145-` TWinCEWSButton = class(TWSButton)`\
146-` private`\
147-` protected`\
148-` public`\
149-`   class function  CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override;`\
150-` end;`
145+``` pascal
146+ TWinCEWSButton = class(TWSButton)
147+ private
148+ protected
149+ public
150+ class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override;
151+ end;
152+```
151153
152154Every WS class, that actually implements something must be registered. See the initialization section at the end of the wincewsXXX.pp unit:
153155
154-` RegisterWSComponent(TButton, TWinCEWSButton);`
156+```text
157+ RegisterWSComponent(TButton, TWinCEWSButton);
158+```
155159
156160Also notice that DestroyHandle should be implemented to clean up memory utilized by the control.
157161
158162## See Also
159163
160164- [[Windows CE Development Notes|Windows CE Interface Development notes]]
161165- Alternative Lazarus Windows CE tutorial using Win64
162166- [[Roadmap|Roadmap for the Windows CE interface]]
163167- Mini framework for WindowsCE applications: [pkMiniGUI.pas](http://ccrdude.net/files/fpc/pkMiniGUI.pas) [Documentation](http://ccrdude.net/docs/pkCEStuff.htm)
164168- [[KOL-CE/fr|WinCE port of KOL GUI library]] - compact applications for WinCE/Win32.
165169- [[WinCE port]] - About the compiler specific parts of the port
166170
167171## Downloads
168172
169173- An add-on installer for the Lazarus windows installer based on fpc 2.1.1: <ftp://ftp.hu.freepascal.org/pub/lazarus/cross/>. These files are mirrored at <http://michael-ep3.physik.uni-halle.de/Lazarus/cross/> Details can be found at <http://www.mail-archive.com/lazarus@miraclec.com/msg12909.html> Thanks to Vincent Snijders.
170174
171175---
172176*From the Free Pascal wiki, page "Windows CE Interface/fr", as it stood on 2015-07-20 after a change by FTurtle, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
173177Category: WinCE/fr

Back to history