vendredi 2 juin 2023

C++ avec Visual Studio 2019

Alors ce matin, je reprends le développement en C++ pour voir ce que l'on peut faire avec Visual Studio 2019... en C++. Quel sont les Templates les outils de test qui sont proposés par Visual Studio C++.

Visual Studio 2019 - Instanciation d'un projet Windows Desktop C++
Visual Studio 2019 - Instanciation d'un projet Windows Desktop C++

Après avoir fait pas mal de chose avec Arduino et avoir fait un tour complet des technologies Microsoft UWP, Balzor, WPF, MAUI ... je souhaite retourner faire un tour du côté de C++ mais à nouveau je retombe sur la difficulté de ce projet Template C++ instancié par Visual Studio 2019 et après ... et après on se sens tout nu.

Même Git est perdu avec tout ces fichiers temporaire décidément le développement d'application Desktop avec C++ ce n'est pas une sinécure. Je souhaite absolument ne pas installer les MFC ...

Je trouve une page pour développer une fenêtre :

Microsoft Learn - Créer une fenêtre - Win32 apps

Plus généralement :

Microsoft Learn - Créer des applications Windows de bureau à l’aide de l’API Win32

Je trouve également

Microsoft - Win2d

Je cherche un peu dans mes archives et finalement, je trouve ce projet MFCPlusNiveauSup  :

Visual Studio C++ - MFC - Application à la façon "MS Office"
Visual Studio C++ - MFC - Application à la façon "MS Office"

Je ne vous raconte pas le bouzin, le code tout à la main pas un designer graphiques si je veux vraiment faire du C++ je vais me rabattre sur :

GitHub - mabyre/Console-CPlusPlus-StarterKit
 For developers to work in C++ and C this is the best trace tool ever

Je crois que je vais tout fermer et aller à la plage...

Mais sinon il y a peut être un truc bien Ici  avec une machine virtuelle installée avec un environnement de développement.

Alors sinon, ce matin je reprends cette problématique de "comment développer en C++" et je décide de mettre à jour mon Visual Studio 2019 avec les features MFC et me voilà avec bien plus de possibilités :

Visual Studio 2019 Ajout des features MFC
Visual Studio 2019 Ajout des features MFC

J'ai un tas de choix à effectuer :

  • Type d'applications : on se rappelle MDI (Multiple Document Interface) choix de l'interface avec plutôt des boites de dialogues, un seul document, plusieurs documents
  • Propriétés du modèle de document : le type de document traité par l'application
  • Propriété de l'interface utilisateur : propriété des menus à rubans, des barres d'outils
  • Fonctionnalités avancées : on trouve par exemple Sockets Windows, Aperçu avant impression.
  • Classe générées : possibilité de modifier le nom des classes autre que CMFCApplication1App

On trouve par exemple la possibilité de choisir le style du projet :

Donc plus de doute, pour développer en C++ pas d'autres possibilités que les MFC ... Mais c'est un peu vieillot tout ça "Office 2007" ne date pas d'hier.

Du coup je vous propose de découvrir Qt/C++

Mais bon, allons un peu plus loin en instanciant quelques Templates, je choisie l'utilisation des MFC dans une bibliothèque statique et le thème Windows Native/Default :

Visual Studio 2019 - Application Desktop en C++
Visual Studio 2019 - Application Desktop en C++

C'est joli mais on remarque déjà un problème d'Encodage UTF8 ...

Parce que je suis joueur j'instancie une deuxième application avec un autre thème :

Visual Studio 2019 - Application Desktop en C++
Visual Studio 2019 - Application Desktop en C++

C'est bien vieux tout cela et je ne suis par sûr qu'il faille aller plus loin. C'est clair, le développement d'application modernes ne passe désormais plus que part .NET. Sinon on aurait au moins un concepteur graphique pour les pages .CPP alors que l'on en a un pour les Boites de Dialogues c'est curieux non ?

J'ai une petite technique à vous donner ici lorsque je me trouve face à tous ces choix pour les Template je fais des choix et j'instancie ces projets son le même ici en l’occurrence MFCApplication1 et je les compare. 

Voici deux choix MFC dans une lib statique et MFC dans une DLL partagée voici la différence :

MFC dans une librairies statique ou dans une librairie partagée
MFC dans une librairies statique ou dans une librairie partagée

On vient de voir très rapidement comment aujourd'hui développer une application Desktop en C++ avec Visual Studio 2019.

Si vous avez du code en C++ à faire tourner en mode Console, je vous conseille :

GitHub - mabyre/Console-CPlusPlus-StarterKit

Ou à la rigueur avec une Interface Graphique un peu plus "user friendly" :

GitHub - Mabyre/MFC-CplusPlus-StarterKit

Voilà de bons outils pour travailler votre C++.

Have fun!












Aucun commentaire:

Enregistrer un commentaire