Code-Blocks Et Les DevPacks WxWidgets V2

Click here to load reader

  • date post

    07-Jun-2015
  • Category

    Documents

  • view

    568
  • download

    3

Embed Size (px)

Transcript of Code-Blocks Et Les DevPacks WxWidgets V2

Installation des DevPacks wxWidgets 2.6.3 pour Code::Blocks1) Tlcharger les DevPacks installer : Je vous recommande daller sur le site de FredCL : http://cfred.free.fr/ Il faut tlcharger le DevPack des fichiers en-ttes et au minimum un des 4 DevPacks contenant les bibliothques compiles. Vous pouvez, si vous ntes pas sr, tlcharger les 4, ils ne sont pas trs gros. Vous trouverez galement un DevPack contenant les exemples et laide au format MS-Help. 2) Dcompression du contenu des DevPacks : Les DevPacks sont en fait des archives tar compresses au format bz2. Il vous suffit de les renommer en changeant leur extension en .tar.bz2 . Ainsi, par exemple, pour les fichiers en-tte, vous devriez obtenir un fichier qui porte le nom suivant : wxWidgets_263_headers.tar.bz2 Il ne vous reste plus qu les dcompresser avec un logiciel tel que WinRar, ou mieux, 7-Zip qui lui est totalement gratuit :

3) Rpertoire dinstallation Il faut dabord crer le rpertoire dans lequel nous allons installer les bibliothques. Pour cet exemple, nous allons crer le rpertoire C:\wx263\ . Il faut galement crer un sous rpertoire include dans ce rpertoire dinstallation. 4) Copie des fichiers - Copier le contenu du sous-rpertoire \packinclude\include\wxWidgets-2.6.3\ qui se trouve dans le DevPack des en-ttes, et le coller dans le rpertoire cr ci-dessus. Notre sous-rpertoire include doit donc maintenant contenir un sous-rpertoire wx , ainsi quune ribambelle de fichiers *.pch - Copie le sous-rpertoire lib qui se trouve dans chaque DevPack de bibliothque compile, et collez-le dans le rpertoire dinstallation. Normalement, si vous en installez plusieurs, Windows doit vous afficher un avertissement que vous devez ignorer :

- Si vous installez les DevPacks de bibliothques dynamiques, le dossier lib contient les dll quil faut dplacer dans le rpertoire system32 de Windows. Pour ceux qui ont peur dencombrer leur dossier system32 , vous pouvez, par exemple, crer un 3me dossier sous C:\wx263\ et vous le nommez Dll . Copiez les dll dans ce dossier, et ajoutez ce chemin la variable systme PATH , de faon ce que Windows sache o les trouver. 5) Linstallation des DevPacks est termine. Nous allons maintenant passer leur utilisation en crant un petit projet basic sous Code::Blocks.

Utilisation des DevPacks wxWidgets 2.6.3 avec Code::BlocksAfin dtre sr dobtenir les mmes boites de dialogue que moi, je vous conseille de tlcharger et dinstaller la dernire Nightly Build (la mienne est celle du 23/08/2006). Nous allons crer une petite application wxWidgets qui pourra vous servir de Template par la suite pour vos propres applications. 6) Dmarrer Code::Blocks. Nous allons partir dun projet Win32 classique. Cela va nous permettre de voir quelles sont les options donner au compilateur afin de pouvoir crer une application wxWidgets. Pour commencer, nous allons crer un nouveau projet Win32 GUI project .

Aprs la page de bienvenue, lassistant nous demande le nom, et le chemin du dossier dans lequel nous voulons crer ce nouveau projet. Pour ma part, jappelle ce projet wxTemplate , car il me servira par la suite de template pour toute nouvelle application wxWidgets. A noter quil suffit de remplir les deux premiers champs. Les deux suivants se remplissent automatiquement lors de la saisie.

La page suivante permet de rgler les options de base pour les diffrentes configurations que contiendra notre projet. Pour linstant, laissons les options pas dfaut qui nous sont proposes, nous les modifierons ventuellement par la suite. Voici ce que a donne :

Voil, cest termin, nous avons cr notre projet. Si vous regardez dans le dossier de ce projet, vous constaterez quil contient le fichier du projet (wxTemplate.cbp), et un fichier source (main.cpp). Si vous ditez le fichier main.cpp, vous remarquerez quil contient dj du code pour crer une fentre en pur Win32 API. Nous allons donc tout supprimer afin dobtenir un fichier vide pour pouvoir insrer notre code wxWidgets. 7) Cration de la classe de base Nous allons maintenant entrer le code minimum pour une application wxWidgets. En effet, dans toute application cre avec ce FrameWork, nous devons commencer par crer une classe drive de la classe wxApp. Cette classe devra au minimum contenir une fonction nomme OnInit et retournant un boolen pour indiquer si nous avons russi initialiser notre application ou non. Nous nallons pas pour linstant crer de fentre, mais nous allons simplement afficher une MessageBox et terminer notre programme. A ce propos, je vous ai dit ci-dessus que la fonction OnInit devait retourner un boolen. - Si cette valeur est true, cela va indiquer wxWidgets que nous avons correctement initialis notre application, et que lxcution peut continuer. - Si cette valeur est false, cest linverse : lexcution se termine. Pour cette premire application, nous allons renvoyer false. En effet, aprs avoir affich notre boite de message, si nous indiquons wxWidgets que tout est OK, notre programme va alors commencer la boucle habituelle (le Messages Loop) que toute application Win32 doit contenir. Comme nous navons pas encore de fentre afficher, nous ne disposerons daucun moyen ( part le gestionnaire des tches) pour terminer notre programme. Aprs avoir cr notre classe, nous allons indiquer wxWidgets quil sagit de la classe de base de notre application. Nous disposons pour ce faire dune macro qui prend en paramtre le nom de notre classe. Cette macro va se charger de crer la boucle des messages pour nous. Vous noterez galement, dans le code ci-aprs, la prsence dune ligne include Il sagit du fichier minimum inclure tout code source bas sur wxWidgets. Il contient les dfinitions des classes et fonctions principales wxWidgets.

Voici donc ce que devra contenir le fichier main.cpp :// Inclusion du fichier wx.h qui contient les dfinitions // des classes et fonctions principales wxWidgets #include // La dfinition de notre classe dapplication class MyApp : public wxApp { public: virtual bool OnInit(); }; // Indiquons wxWidgets quil sagit de notre classe dapplication // Et quelle devra servir de point dentre de lexcutable. IMPLEMENT_APP(MyApp); bool MyApp::OnInit() { // La fonction MessageBox de wxWidgets wxMessageBox("Dmarrage de lapplication !","Gnial",wxICON_INFORMATION); return false; // Pour ne pas bloquer lexcution de lapplication }

Voil. Cest tout. Il ne reste plus qu compiler pour voir ce que a donne. Je vous laisse apprcier. 8) Les rpertoires et options de compilation. Et oui, a ne donne rien dautre quune srie de messages derreurs. En effet, nous navons pas encore indiqu Code::Blocks o nous avions plac les fichiers wxWidgets. Cest la partie la plus dlicate. Heureusement, vous naurez pas le refaire par la suite, car Code::Blocks vous donne la possibilit de vous servir dun projet existant (et fonctionnant) comme Template pour une autre application (do le nom de projet wxTemplate, astucieux, non ?) Voici le rsultat de (lchec de) la compilation chez moi :

La premire ligne nous dit que le compilateur ne trouve pas le fichier wx/wx.h . En effet, il faut lui indiquer que nous avons plac les includes dans le rpertoire c:\wx26\include . Par la suite, nous verrons quil nous faudra aussi lui indiquer que nous avons plac les fichiers lib dans un autre sous-rpertoire de c:\wx26\ . Nous allons donc crer une variable globale notre projet, que nous appellerons WX26_DIR , et qui contiendra le chemin de base de wxWidgets, c'est--dire c:\wx26\ . Pour ce faire, il faut aller dans la boite doptions de compilation du projet. Pour lafficher, il faut aller dans le menu Project , Build options . Comme il sagit dune variable globale notre projet, et non lune des configurations, il faut slectionner lentre wxTemplate dans larbre (1), puis longlet Custom variables (2) . La liste des variables doit pour linstant tre vide. Nous allons donc ajouter notre variable (bouton Add ) (3) Entrez ensuite le nom de la variable, soit WX_DIR (4) et sa valeur (5).

Attention : il ne faut pas ajouter le dernier antislash au chemin, il risquerait de faire doublon lors de lutilisation de cette variable (je vous le rappellerai au moment venu). Il ne nous reste plus qu valider cette variable (6). Voici ces tapes sur la boite de dialogue de Code::Blocks.

De mme, comme les fichiers include seront toujours placs au mme endroit, nous pouvons indiquer leur emplacement dans les options du projet. Cela se passe dans longlet Directories , et dans le sous-onglet Compiler .

Vous noterez au passage la faon dont jai donn le nom du rpertoire au compilateur : $(WX_DIR)\include . Cest pour cette raison que je vous ai indiqu, prcdemment, de ne pas mettre le dernier antislash de la variable WX_DIR. En effet, il aurait t doubl par celui prcdant include dans ce chemin (cela aurait donn : C:\wx26\\include). Voil, notre compilateur sait maintenant o aller chercher les headers de wxWidgets. Il ne nous reste plus qu fermer la boite doptions, et relancer la compilation. Surprise, a ne marche toujours pas ! Cest mme pire : nous obtenons beaucoup plus derreurs que la premire fois. Si lon regarde la premire erreur, elle concerne encore un header non trouv : le fichier wx/setup.h . Pour faire simple, ce fichier est celui dans lequel sont donnes toutes les options qui ont servi compiler wxWidgets. Ainsi, certaines dfinitions ne sont pas les mmes si lon programme en UNICODE ou en ANSI. Il faudra donc inclure le bon suivant vos prfrences de programmation. 9) Diffrentes configurations de compilation. Pour commencer, nous allons nous occuper de programmer en ANSI , et en utilisant les libs dynamiques. Notre projet contient actuellement deux configurations : Debug et Release . Nous allons donc les renommer en Debug_Ansi_Dynamic et Release_Ansi_Dynamic . Pour ce faire, il faut aller dans la page de proprits du projet : menu Project , Properties . Ne nous occ