Visual Studio C++
Pour le projet, vous pouvez travailler sur n’importe quelle plateforme et avec n’importe quel outil. Cependant, pour les débutants nous vous conseillons d’utiliser Visual Studio qui est un outil facile à prendre en main et d’une grande souplesse d’utilisation. Nous vous conseillons de travailler avec la version 2019 ou 2022 de Visual Studio.
Historique
Pour la petite histoire, l’environnement de développement phare de Microsoft s’appelle Visual Studio.
Visual Studio 6 (1998) intègre notamment le langage C++ et le Visual Basic.
Visual Studio .NET (2003/05/08/10/12/13/15/17/19/22) intègre la plateforme .Net et le langage C# (le Java de Microsoft).
Visual Studio pour Mac est une tentative de portage de VS.net sous Mac, projet enthousiaste qui ne rencontra pas son public. Le produit devait être identique à la version Windows, mais il ne le sera pas. Ce projet s’est arrêté en août 2024.
Visual Studio est concurrencé par des environnement de qualité et gratuit comme Eclipse, Netbeans ou encore Code-Block… à 1500€ la licence pour Visual Studio Professionnel et 7000€ pour la version entreprise, la base des utilisateurs a du mal à s’agrandir. Il faut trouver une solution, c’est l’apparition de Visual Studio Community (à partir de 2019) qui devient gratuit pour les étudiants et les développeurs indépendants.
Microsoft, toujours dans le but de séduire une audience plus large, publie une version libre de l’éditeur de code de Visual Studio dont le code source sera entièrement disponible sous Github. Ainsi apparaît Visual Studio Code un éditeur de code haut de gamme. L’aspect logiciel libre séduit, VSCode connaît un succès incroyable et se trouve largement plébiscité par la communauté. De nombreux plugins gratuits apparaissent le rendant très polyvalent. Il est de plus disponible sous Windows, Linux et Mac contrairement à la suite de logiciels Visual Studio originale.
Il n’est pas évident de saisir la différence entre Visual Studio Code et Visual Studio Communty sans se rappeler leur historique respective. Gardez en tête que VS Community est un environnement professionnel de Microsoft et que VSCode est un éditeur de code qui s’est largement étoffé avec le temps. En ce qui concerne notre projet, nous travaillons uniquement avec Visual Studio Community. Nous vous trompez pas ! Les icônes des applications sont là pour vous aider ! Enfin espérons le :)
C’est parti
Démarrez la procédure d’installation en début de séance, il faudra entre 10min à 2h.
Installation
Visual Studio est l’Environnement de Développement Intégré (IDE) édité par Microsoft. Il comprend, entre autre, un éditeur de code, un compilateur, un débogueur, un profiler (mesure de performances) et bien d’autres outils.
Rendez-vous sur le site de téléchargement : https://visualstudio.microsoft.com/fr/downloads/
Cliquez sur le bouton Communauté - Téléchargement gratuit.
Lancez le programme qui vient de se télécharger : VisualStudioSetup.exe
Apparaît alors la liste des Développements téléchargeables :
Pas d’inquiétude, vous pouvez à tout moment revenir à cet écran pour ajouter ou retirer un environnement.
Sélectionnez celui qui nous intéresse pour le projet :
Ensuite, cliquez sur le bouton Installez.
Le téléchargement démarre. L’opération peut prendre de 10 minutes à 1 heure.
Dans l’attente, vous remarquez un petit icône lune en haut à droite de la fenêtre. Il permet de changer de style et de passer en mode sombre. Testez pour savoir quel thème vous convient le mieux.
L’écran suivant vous demande de choisir votre thème. Cliquez ensuite sur le bouton Démarrer Visual Studio.
C’est fini !
Premiers pas
Créer un projet C++
Lancez Visual Studio :
Un écran de sélection apparaît, choisissez Créer un projet :
Apparaît ensuite un écran qui propose des dizaines de configuration de projets. Ne vous trompez pas, c’est très important.
Dans la boîte de recherche, entrez : « console c++ » et sélectionnez ensuite l’environnement : Application Console, Windows et C++.
Cliquez ensuite sur le bouton Suivant.
L’écran suivant vous rappelle les propriétés du projet. Vérifiez que les 3 mots-clefs sont présents : console, C++ et Windows. Dans le cas contraire, vous n’avez pas sélectionné le bon type de projet. Cliquez alors sur le bouton Retour et cherchez le bon environnement.
Donnez le nom que vous désirez à votre projet : Test1 et changez éventuellement son emplacement sur le disque.
Cliquez ensuite sur le bouton Créer.
La fenêtre de projet apparaît enfin !
Appuyez sur la touche F5 pour lancer le programme ou cliquez le petit icône Play vert en haut.
Une fenêtre console apparaît et affiche : Hello World !
Découvrir l’interface
Si le fichier ConsoleApplication.cpp est ouvert dans l’éditeur, fermez sa fenêtre en cliquant ici :
Sur la droite, dans la fenêtre de l’Explorateur de solutions, dépliez le groupe Fichiers sources :
Apparaît alors la liste des fichiers du projet qui, dans notre cas, se limite au fichier : ConsoleApplication.cpp.
Double-cliquez sur le nom du fichier ConsoleApplication.cpp pour l’ouvrir dans l’éditeur.
Si la fenêtre de l’Explorateur de solutions n’est pas disponible, vous pouvez la faire apparaître dans le menu Affichage>Explorateur de solutions :
Personnaliser l’interface
L’interface de travail est entièrement reconfigurable :
Positionnez le curseur de la souris sur le bandeau de l’Explorateur de solutions.
Appuyez sans relâcher sur le bouton gauche de la souris.
Déplacez très légèrement la souris pour décrocher la fenêtre de sa position.
Lorsque la fenêtre réagit, déplacez la souris, le fenêtre vous propose alors de la repositionner.
Jouez avec l’interface pour voir les différentes options :
Déboguer sous Visual
Copiez cette fonction main pour remplacer l’actuelle :
#include <iostream> int main() { std::cout << "Hello World !\n"; int toto = 4; int titi = 8; int res = toto + titi; std::cout << res; }
Positionnez le curseur de la souris dans la colonne grise à gauche des numéros de ligne pour faire apparaître un point d’arrêt (breakpoint) au niveau de la ligne std::cout << res;.
Appuyez sur la touche F5 pour lancer le programme.
L’exécution stoppe sur la ligne du breakpoint :
La flèche en jaune indique la ligne où s’est arrêté le programme.
Cette ligne n’est pas encore exécutée. Elle représente la prochaine ligne à exécuter.
La ligne en question est entourée d’un rectangle gris
Examinez le contenu de la fenêtre intitulée Automatique. Si cette fenêtre n’apparaît pas, vous pouvez l’ouvrir à partir du menu : Déboguer > Fenêtres > Automatique :
Cette fenêtre indique les valeurs prises par les variables courantes :
Sélectionnez la fenêtre intitulée Espion. En double-cliquant sur une ligne, vous pouvez insérer une expression dont la valeur sera évaluée en live :
Écrivez titi+toto
Écrivez T[0]
Pour connaître rapidement la valeur d’une variable, positionnez le curseur de la souris sur son nom dans le code. Sa valeur, si elle est connue, apparaîtra à coté :
Appuyez sur la touche F5 pour relancer le programme et le terminer.
Copiez cette fonction main pour remplacer l’actuelle :
#include <iostream> void fnt(int a, int b) { std::cout << a + b; } int main() { std::cout << "Hello World !\n"; int toto = 4; int titi = 8; int res = toto + titi; fnt(titi, toto); }
Retirez l’ancien breakpoint en cliquant dessus
Mettez un nouveau breakpoint sur la ligne std::cout << a + b; dans la nouvelle fonction fnt.
Appuyez sur la touche F5 pour lancer le programme. Vous devez obtenir l’affichage suivant :
Examinez la fenêtre en bas à droite intitulée Pile des appels :
Cette fenêtre indique :
La fonction en cours d’exécution fnt(int a,int b) tout en haut de la liste
L’intégralité des fonctions appelantes listées de haut en bas jusqu’à la fonction main.
Double-cliquez sur la ligne main() Ligne 17. Cette manipulation vous fait remonter dans le temps ! Cette technique permet de connaître l’état des variables des fonctions appelantes. La flèche verte indique votre position dans l’historique :
Examinez la fenêtre Automatique, elle affiche les variables de la fonction sélectionnée. Nous regardons en arrière, mais à aucun moment l’exécution du programme n’a fait « demi-tour ». C’est l’environnement de débogage qui durant l’exécution a conservé les informations des fonctions appelantes.
Dans la fenêtre Pile des appels, cliquez sur fnt(a,b) pour revenir à la fonction courante.
Appuyez sur la touche F5 pour relancer et terminer le programme.
Structure du projet sur le disque
Structure d’une solution
Dans la logique de Visual Studio :
Une solution contient plusieurs projets
Chaque projet contient plusieurs fichiers (source/image…)
Voici un exemple de solution contenant plusieurs projets :
Retrouver l’emplacement sur le disque
Vous rappelez-vous du répertoire dans lequel vous avez sauvegardé votre projet ? Difficile… Cependant, le gestionnaire de projet de Visual Studio contient toutes ces informations :
Dans l’Explorateur de solutions, cliquez sur le nom du fichier ConsoleApplication.cpp.
Appuyez sur la touche F4 pour ouvrir la fenêtre de propriétés
A l’intérieur de cette fenêtre, vous devez voir apparaître les informations relatives à ce fichier :
Son nom
Son chemin sur le disque
Double-cliquez sur la cellule contenant le chemin complet et copiez son contenu.
Fermez Visual Studio.
Organisation sur le disque
Ouvrez l’explorateur de fichiers (Touche Windows+E).
Allez dans le répertoire de votre projet :
Vous trouvez à la racine du projet un seul fichier avec l’extension sln (solution), ce fichier contient la liste des projets présents dans la solution.
Pour chaque projet présent dans la solution, il existe un répertoire portant son nom.
Rentrez dans le répertoire ConsoleApplication, on y trouve :
Le(s) fichier(s) source comme ConsoleApplication.cpp
Un unique fichier avec l’extension vcxproj stockant toutes les informations et les liens des fichiers du projet
Note
Si vous double-cliquez sur le fichier ConsoleApplication.sln ou sur ConsoleApplication.vcxproj, cela ouvre immédiatement le projet dans Visual Studio.
Avertissement
Ne jamais cliquer sur le fichier .cpp, cela a pour effet de l’ouvrir dans Visual Studio mais comme si l’on ouvrait ce fichier dans un éditeur de texte. A ce niveau, Visual ne connaît rien du projet et il sera incapable de compiler votre programme.