CHAPITRE 1 ENVIRONNEMENT DE DÉVELOPPEMENT Installer Microsoft Visual C++ 2010 Express Edition... 17 Démarrer un nouveau projet... 21 Créer un programme minimal... 24 Générer et exécuter un programme... 26 Check-list... 30 15
Un programme C++ est un ensemble de fichiers de programmation, c est-àdire de fichiers de texte dont le contenu respecte les règles du langage. Une fois remplis, ces fichiers doivent être traduits en langage machine : cette étape est appelée "compilation". Vous aurez donc besoin d un traitement de texte pour saisir vos programmes, et d un compilateur pour les transformer en exécutables, ou mieux, d un logiciel regroupant toutes ces fonctionnalités! Microsoft Visual C++ 2010 Express Edition est un environnement de développement intégré (ou IDE pour Integrated Development Environment). Il s agit d un logiciel qui regroupe au sein d une même interface tous les outils nécessaires au développement de programmes en C++ : un traitement de texte, un compilateur, mais aussi un débogueur et de nombreuses autres fonctionnalités. Ce logiciel "tout en un" est une solution puissante, qui permet de développer rapidement des applications évoluées. 1.1. Installer Microsoft Visual C++ 2010 Express Edition Installation depuis Internet Comme tous les produits de la suite Visual Studio 2010 Express, Visual C++ 2010 Express Edition est une version allégée de Visual C++ 2010, mais qui contient néanmoins toutes les fonctionnalités dont nous aurons besoin dans le cadre de cet ouvrage. De plus, cette version est traduite en français, et disponible sur le site web de Microsoft. Vous aurez donc besoin d une connexion à Internet pour l installer. Versions antérieures de Visual C++ Les programmes de cet ouvrage sont réalisés avec Visual C++ 2010 Express Edition et la plateforme.net 4.0. Cependant ils sont totalement compatibles avec les deux précédentes versions (Visual C++ 2008 Express Edition et.net 3.5, ainsi que Visual C++ 2005 Express Edition et.net 2.0). Pour appliquer le travail de cet ouvrage, utiliser Visual 2008 ou 2005 ne posera donc aucun problème. 1 Lancez votre navigateur web, et rendez-vous sur la page http://msdn.microsoft.com/fr-fr/express/aa975050.aspx. Vous êtes invité à télécharger le programme d installation, peu volumineux, qui à son tour téléchargera depuis Internet les composants nécessaires. Dans l encadré Visual C++ 2010 Express Edition de couleur jaune, sélectionnez Français dans le menu déroulant, puis cliquez sur le bouton Téléchargez et enregistrez le programme vc_web.exe sur votre disque dur, puis, enfin, exécutez-le. 1.1. Installer Microsoft Visual C++ 2010 Express Edition 17
Figure 1.1 : Télécharger Visual C++ 2010 Express depuis le site de Microsoft Si, pour une quelconque raison, vous ne parvenez pas à télécharger l exécutable permettant l installation de Visual C++ 2010 Express, le fichier en question vc_web.exe est aussi présent sur le site Internet de l éditeur, avec les codes sources des projets réalisés dans cet ouvrage. Pour en savoir plus, consultez l annexe Télécharger les sources des programmes d exemple. Lien de téléchargement de Visual C++ 2010 Express Edition Le site de Microsoft étant régulièrement mis à jour, les liens pour accéder aux logiciels sont susceptibles de changer. Si le lien donné précédemment pour télécharger Visual C++ ne fonctionnait plus, ou si la page de téléchargement ne correspondait plus à la capture présentée ici, une recherche de Visual C++ Express à partir du site www.microsoft.fr vous permettrait de trouver rapidement l exécutable. 2 Le programme d installation vous propose tout d abord d envoyer à Microsoft les informations relatives à votre installation. Cochez ou décochez la case selon votre convenance, et cliquez sur le bouton Suivant. 3 Dans la deuxième fenêtre, cochez la case J ai lu les termes du contrat de licence et je les accepte après en avoir pris connaissance, et cliquez à nouveau sur Suivant. 4 La fenêtre suivante propose une ou plusieurs options d installation. Nous n exploiterons aucun de ces produits optionnels dans cet ouvrage, vous êtes donc libre de ne rien cocher. 18 1. Environnement de développement
5 L écran suivant récapitule la liste des composants que le programme s apprête à installer, et vous permet de modifier le répertoire d installation. Si vous êtes satisfait, cliquez sur Installer pour procéder au téléchargement et à l installation du logiciel. Cette étape peut prendre un certain temps si vous ne disposez pas du Framework.NET 4.0. 6 Une fois l installation terminée, il est recommandé d enregistrer votre version de Visual C++ Express Edition. L inscription permet de bénéficier de services supplémentaires, mais elle est surtout obligatoire pour pouvoir utiliser le logiciel sans limite de temps : en effet, dans le cas contraire, son utilisation est limitée à 30 jours. 7 Lancez Visual C++ 2010 Express Edition, depuis le menu Démarrer/Tous les programmes de la barre des tâches de Windows. Ouvrez le menu? puis cliquez sur Inscrire le produit. Figure 1.2 : Fenêtre d inscription du produit 8 Dans la nouvelle fenêtre, cliquez sur Obtenir une clé d inscription en ligne. Une page Internet s est ouverte vous demandant de vous connecter avec votre Windows Live ID. Si vous possédez une adresse Hotmail, MSN, ou Microsoft Passport, vous pouvez l utiliser. Si vous ne possédez pas de Windows Live ID, cliquez sur Inscription et suivez les instructions. 9 Une fois connecté, vous devrez remplir une courte page de questions permettant d effectuer l enregistrement. La page remplie et l inscription correctement effectuée, vous aurez accès à votre clé d enregistrement. Copiez-la et collez-la dans le champ Clé d inscription de la fenêtre d inscription de Visual. Cliquez enfin sur Terminer l inscription (voir Figure 1.3). L installation et la configuration de Visual C++ 2010 Express Edition sont maintenant terminées. 1.1. Installer Microsoft Visual C++ 2010 Express Edition 19
Figure 1.3 : Obtenir une clé d inscription Présentation de l interface Prenez le temps qu il vous faut pour vous familiariser avec l interface. Nous passerons ensuite en revue les principales fonctionnalités du logiciel pour que vous preniez en main votre environnement de travail. Figure 1.4 : L interface avancée de Visual C++ 2010 Express Edition 20 1. Environnement de développement
Disposition avancée de l interface Visual C++ propose deux paramétrages par défaut de la disposition des fenêtres et des barres d outils. Pour passer de l un à l autre, sélectionnez le menu Outils puis la commande Paramètres : le sous-menu vous permet alors de choisir entre Paramètres de base et Paramètres avancés. Les paramètres avancés affichent quelques fenêtres et raccourcis supplémentaires et réorganisent légèrement les menus. La suite de cet ouvrage sera basée sur la disposition avancée. Au centre de l interface, la Page de démarrage propose un accès rapide aux derniers projets ouverts. C est dans cette même partie que s ouvrent les fichiers de programmation : elle porte le nom de Zone d édition. Dans la partie inférieure de l interface, la fenêtre horizontale compte par défaut deux onglets. Nous nous servirons surtout de Sortie, qui affiche les messages en provenance du compilateur. Enfin, la fenêtre verticale de la partie gauche sera surtout utilisée pour l onglet Explorateur de solutions, dans lequel sont listés les fichiers de programmation qui composent votre programme. Personnalisation de l interface Chaque fenêtre qui compose l interface est entièrement personnalisable : vous pouvez changer l ordre et la composition des onglets, ou la position des fenêtres, par simple glisser-déplacer. Pour octroyer d avantage de place à la fenêtre principale (pour l instant, la page de démarrage), vous pouvez masquer les fenêtres auxiliaires : cliquez sur le bouton triangulaire Position de la fenêtre d une barre de titre, et sélectionnez Masquer automatiquement. 1.2. Démarrer un nouveau projet Organisation des fichiers dans Visual C++ Les fichiers de programmation sont des fichiers texte, appartenant à deux familles : les fichiers sources, dont l extension est traditionnellement.cpp, et les fichiers d en-tête, d extension.h (nous reviendrons ultérieurement sur la distinction entre les deux). Les fichiers nécessaires à la création d un programme sont regroupés dans un projet. Ce dernier contient également les éléments de configuration nécessaires à la création du programme. Le fichier associé au projet porte l extension.vcxproj. Enfin, plusieurs projets peuvent être regroupés dans un même espace de travail, appelé "solution". Le fichier associé à une solution est au format.sln. 1.2. Démarrer un nouveau projet 21
Créer un nouveau projet Vous allez créer un projet d exemple, pour vous familiariser avec cette procédure, que vous serez amené à répéter plusieurs fois dans les chapitres à venir. 1 Dans le menu Fichier, sélectionnez Nouveau puis la commande Projet. 2 Vous devez alors choisir le type de projet qui vous convient parmi les modèles proposés. Ils sont regroupés par catégories. Sous Win32 se trouvent les modèles de programmes classiques pour architecture 32 bits : sélectionnez Application console Win32. Une application console se présente sous la forme d une fenêtre DOS, et offre au programmeur une entrée clavier et une sortie écran : c est ce modèle que vous utiliserez dans les premiers chapitres de cet ouvrage. Sous l entrée CLR se trouvent les modèles de programmes destinés à s exécuter dans le cadre du Framework.NET 4.0. Nous les étudierons en détail au chapitre Introduction à la programmation.net 4.0. Dans la partie inférieure de la boîte de dialogue, saisissez essai dans le champ Nom, et spécifiez un emplacement. Dans les exemples de cet ouvrage, nous enregistrerons les projets dans le répertoire C:\MesProjets. 3 Une nouvelle solution va être créée dans ce répertoire pour le projet. Nommez-la essaisolution dans le champ Nom de la solution (par défaut, le nom du projet est utilisé). Laissez la case Créer le répertoire pour la solution cochée, et cliquez sur OK. Figure 1.5 : Boîte de dialogue Nouveau Projet 4 La boîte de dialogue Assistant Application Win32 apparaît. Cliquez sur Suivant. 22 1. Environnement de développement
5 Dans le nouvel écran, laissez l option Application console sélectionnée, cochez la case Projet vide et cliquez sur Terminer pour terminer la création du projet et de sa solution. Vous constaterez alors, sur votre disque dur, qu à l emplacement que vous avez spécifié dans la boîte de dialogue Nouveau Projet se trouve un nouveau dossier essaisolution. Dans celui-ci figurent la solution essaisolution.sln, etle sous-dossier essai qui contient le projet essai.vcxproj, et où vont bientôt venir s ajouter les fichiers de programmation que vous allez inclure dans le projet. Ajouter des fichiers au projet Figure 1.6 : Boîte de dialogue Assistant Application Votre nouveau projet créé, l interface du logiciel a légèrement évolué. La solution et le projet sont maintenant représentés dans la fenêtre Explorateur de solutions. Le projet est pour l instant vide. Vous allez le remplir. 1 Cliquez du bouton droit sur l icône du projet, et sélectionnez Ajouter dans le menu contextuel, puis la commande Nouvel élément. 2 Dans la catégorie Code se trouvent les deux types de fichiers que vous utiliserez le plus fréquemment : Fichier C++ (.cpp) et Fichier d en-tête (.h). Pour cet exemple, choisissez le premier, nommez-le fichier_source, puis cliquez sur le bouton Ajouter. Figure 1.7 : Ajouter un nouveau fichier au projet 1.2. Démarrer un nouveau projet 23
Le fichier fichier_source.cpp est maintenant visible dans l Explorateur de solutions, et a été ouvert dans l espace de travail. Procédez de même que précédemment pour ajouter un fichier d en-tête (.h), que vous nommerez fichier_entete.h. Deux documents sont désormais ouverts, vous pouvez passer de l un à l autre en cliquant sur l onglet correspondant à leur nom, où en utilisant le raccourci clavier [Ctrl]+[ ]. 1.3. Créer un programme minimal Instructions Un programme informatique est une suite de directives, exécutées les unes à la suite des autres. Considérons un programme structuré comme suit : j InstructionA; j InstructionB; j InstructionC; L instruction A est appelée au tout début. Une fois cette tâche A achevée, c est au tour de l instruction B d être déclenchée, suivie de la C. Puis le programme se termine et se ferme. Un autre point important de la syntaxe du C++ est que chaque instruction se termine par un point-virgule (;). Lors de la programmation de vos premières lignes de code, ce sera sans aucun doute la plus grande source d erreurs de compilation, tant il est facile d oublier ces points-virgules. Un conseil : en cas d erreur de compilation, pensez immédiatement à regarder la fin de vos instructions. Commentaires La syntaxe du langage C++ prévoit la possibilité de placer des commentaires dans le code. Ces commentaires sont des notes laissées par le programmeur pour éclaircir le fonctionnement du programme ; ils sont purement informatifs et n affectent en rien le fonctionnement de l exécutable. Deux types de commentaires existent en C++. j Soit ils débutent par un double slash (//) et s étendent jusqu à la fin de la ligne en cours. Ces commentaires sont utiles pour placer des remarques en vis-à-vis des instructions : j // Commentaire s étendant sur toute la ligne instruction; // Commentaire en vis à vis Soit ils sont placés entre une balise de début /* et une balise de fin */. Ils peuvent alors s étendre sur plusieurs lignes. /* Commentaire sur une ligne */ instruction; /* Commentaire en vis à vis */ /* Commentaire 24 1. Environnement de développement
sur plusieurs lignes */ Nécessité des commentaires Gardez à l esprit que la qualité et la régularité des commentaires influent beaucoup sur la qualité du code. Il est en effet fréquent, dans le cas d un travail en équipe, de modifier ou de déboguer un programme écrit par quelqu un d autre. Dans ce contexte, mieux vaut un programme peu efficace mais clairement expliqué et justifié, qu un programme performant mais incompréhensible, rendant toute opération de débogage ou toute évolution impossible. Blocs d instructions et fonctions Les instructions d un programme sont regroupées par blocs, délimités par une accolade ouvrante ({) et une accolade fermante (}). {// Début du bloc d'instructions instruction1; instruction2; }// Fin du bloc d'instructions Lors de l exécution d un programme, toutes les instructions d un même bloc sont traitées les unes après les autres. Il est possible d emboîter les blocs d instruction à loisir. { instruction1; { instruction2; instruction3; } { instruction4; { instruction5; } instruction6; } } Nous verrons plus tard comment soumettre à une condition le passage dans un bloc. Pour l instant, le programme exécute les instructions dans l ordre instruction1, instruction2, etc. jusqu à instruction6. Blocs d instructions et mise en page La mise en page d un fichier de programmation n a aucune influence sur le programme final. Il est donc recommandé de privilégier la lisibilité du code. Il est d usage d aligner horizontalement deux accolades d un même couple, et de décaler tout leur contenu d une tabulation vers la droite. Lorsque vous 1.3. Créer un programme minimal 25
marquez un retour à la ligne avec la touche [Ä], Visual C++ adopte de lui-même cette mise en page. Un bloc d instructions n étant contenu par aucun autre bloc est appelé "fonction", et il doit lui être affecté un nom. Pour l instant, nous ne présentons qu un seul exemple : la fonction main. Tout programme console possède une fonction main qui, comme son nom l indique, est la fonction principale du programme en question. L accolade ouvrante du bloc d instructions principal est le point d entrée du programme ; lorsque l exécution est rendue à l accolade fermante correspondante, le programme s arrête et le système d exploitation reprend la main. Listing 1-1 : Code minimal d un programme C++ void main (void) // Déclaration de la fonction principale {// Début de l'exécution du programme // Liste des instructions (vide ici) }// Fin de l'exécution du programme Recopiez dans fichier_source.cpp ce programme minimal, qui ne contient effectivement aucune instruction ; il sera cependant suffisant pour illustrer la prochaine étape de la création d un programme exécutable. Caractères séparateurs En C++, les séparateurs ne sont obligatoires qu entre deux noms de types, d objets ou de fonctions (par exemple entre void et main), et optionnels sinon (comme entre main et la parenthèse ouvrante). Un espace, une tabulation et un retour à la ligne peuvent être utilisés comme séparateurs, en quantité quelconque. Ainsi, le programme suivant void main( void ){ } est parfaitement équivalent au programme précédent. Utilisez cependant les séparateurs à bon escient, en privilégiant la lisibilité du code. 1.4. Générer et exécuter un programme Étapes de la création d un exécutable Un programme C++, tel que le précédent, est compréhensible par le programmeur, mais n est pas interprétable par son ordinateur. Deux étapes permettent de créer un programme exécutable par la machine. 26 1. Environnement de développement
Dans un premier temps, chacun des fichiers sources (.cpp) contenus dans le projet est compilé séparément. La compilation est le processus qui vérifie la correction de la syntaxe, puis qui traduit en langage machine les instructions d un fichier source. En sortie, le résultat de la compilation d un fichier source est stocké dans un fichier objet, qui porte le nom du fichier source correspondant, avec l extension.obj. L étape suivante "fusionne" le résultat de la compilation pour créer un exécutable. Les fichiers objets sont concaténés : des recoupements sont effectués lorsque, par exemple, il est fait référence dans un fichier source à une fonction contenue dans un autre fichier du projet, ou quand une fonctionnalité du système d exploitation est utilisée. En effet, pour que votre programme accède à ce que l utilisateur saisit au clavier, ou réagisse aux mouvements de la souris, le décodage des informations envoyées par ces deux périphériques à votre ordinateur n est pas à votre charge ; le système d exploitation traite l information, et met le résultat à la disposition des programmeurs à travers des librairies de fonctions. Les fonctionnalités que vous n avez pas programmées vous-mêmes sont donc "liées" à votre programme durant cette deuxième étape, appelée "édition de liens". À l issue de cette étape, le programme exécutable est généré ; il porte le nom du projet, et l extension.exe. Fichiers de programmation Fichiers objet fichiera.cpp Compilation fichiera.obj Programme exécutable fichierb.cpp fichierb.obj Edition de liens programme.exe fonctions du système d exploitation Figure 1.8 : Les étapes de la génération d un programme exécutable Générer un programme avec Visual C++ Dans Visual C++, tout ce qui se rapporte à la génération d un programme exécutable se trouve dans le menu Générer, que nous allons détailler ici. Commençons par la fin : activez le document fichier_source.cpp et sélectionnez la commande Générer/Compiler. Si vous avez correctement recopié les 1.4. Générer et exécuter un programme 27
quelques lignes du programme, la fenêtre Sortie s active dans la partie inférieure de l environnement, et le message du compilateur vous informe que l opération s est déroulée sans erreur. Figure 1.9 : Résultat de la compilation de fichier_source.cpp Supposons que vous ayez enregistré votre projet dans le répertoire C: \MesProjets. Explorez le contenu du dossier C:\MesProjets\essaisolution\ essai\debug : vous constatez la présence du fichier fichier_source.obj, mais vous n y trouverez pas d exécutable. La commande permet de compiler le fichier source que vous avez ouvert, sans lancer d édition de liens. Sélectionnez cette fois la commande Générer essai du menu Générer. La fenêtre Sortie vous informe que seule l édition de lien est nécessaire (le fichier objet est à jour). Cette fois, le programme exécutable a bien été généré et se trouve dans le dossier C:\MesProjets\essaisolution\debug. Figure 1.10 : Résultat de l édition de liens Si vous sélectionnez à nouveau la commande Générer essai, rien ne se passe. Visual C++ ne lance la génération que si une modification a été apportée aux fichiers de programmation. Ajoutez un retour à la ligne en fin de fichier_source.cpp et recommencez pour constater la différence. À l avenir, il sera inutile de procéder ainsi en deux étapes ; la commande Générer essai exécute l une après l autre la compilation et l édition de liens. Si la solution courante ne contient qu un seul projet, vous pouvez aussi utiliser la commande Générer la solution, qui a le même effet, et offre l avantage d être accessible par la touche [F7]. Terme "compilation" En pratique, il est rare d avoir recours à l étape de compilation sans qu elle soit suivie par une édition de liens. Par abus de langage, le terme "compilation" est souvent utilisé pour désigner la totalité du processus de génération du programme exécutable. 28 1. Environnement de développement
Exécuter un programme Votre programme étant généré, pouvez dès à présent le tester. Vous pouvez lancer directement l exécutable en double-cliquant sur le fichier créé sur votre disque dur, mais il y a plus rapide : sélectionnez le menu Déboguer de Visual C++, puis la commande Exécuter sans débogage, ou bien utilisez les touches [Ctrl]+[F5]. Figure 1.11 : Exécution du programme minimal Personnalisation de la console DOS Par défaut, les caractères de la console sont blancs sur fond noir. Pour des raisons de lisibilité dans cet ouvrage, nous avons préféré inverser ces couleurs. En effet, la console DOS est paramétrable. Pour cela, ouvrez une fenêtre DOS, par exemple en exécutant votre programme, et cliquez du bouton droit sur la barre de titre afin d afficher le menu contextuel. Choisissez la commande Propriétés. Dans la boîte de dialogue Propriétés de "C:\Windows \system32\cmd.exe", cliquez sur l onglet Couleurs. Figure 1.12 : Onglet Couleurs des propriétés de la console Vous pouvez ainsi personnaliser à souhait l apparence esthétique de la console DOS sur votre ordinateur. D autres options sont également disponibles sous les onglets de cette boîte de dialogue, comme la police d affichage ou encore le nombre de lignes maximales à sauvegarder. 1.4. Générer et exécuter un programme 29
Nous ne nous servirons pas pour l instant de la commande Déboguer /Démarrer le débogage. Il s agit d une fonctionnalité essentielle de Visual C++, mais dont l intérêt est difficilement illustré par le programme simple précédemment créé. L utilisation du débogueur de Visual C++ est expliquée en détail dans l annexe Déboguer un programme. 1.5. Check-list Nous avons mis en place les fondations et les outils qui vont faire de vous un programmeur : j j j j Installation et configuration d un outil de développement efficace et gratuit : Visual C++ Express Edition. Création d un programme minimal : enchaînement d instructions, blocs d instructions et fonctions, commentaires pour la compréhension du code. Génération d un exécutable : compilation des fichiers sources et éditions de liens. Création, écriture et exécution d un programme avec Visual C++ Express Edition. 30 1. Environnement de développement