Affichage des articles dont le libellé est Windows. Afficher tous les articles
Affichage des articles dont le libellé est Windows. Afficher tous les articles

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!












mercredi 10 mars 2021

Arduino problème avec le driver du port série de Windows 7

Quel le problème avec le driver série Arduino pour Windows ? Le Driver s'installe avec l'ensemble du logiciel Arduino mais cela ne fonctionne pas bien longtemps.

Vous êtes sans cesse en train de pluguer, déplugguer votre module Arduino et un moment donnée :

Problème port série Windows avec le module Arduino
Problème port série Windows avec le module Arduino

En plus ce n'est pas tout à fait le bon message, depuis il a évolué et j'ai le message suivant :


Alors la solution c'est de réinstaller le driver en désinstallant puis réinstallant tout le logiciel Arduino "correctement". Prendre soin de déplugguer pour que le port série soit "libre" pour désintaller proprement. Un fois résintallé le logiciel complet Arduino, le port est vierge et lors du prochain plugging de votre module Arduino. Windows répondra par un  :

Arduino le pilote de périphérique a été installé
Arduino le pilote de périphérique a été installé

Et vous pourrez continuer à jouer avec votre module Arduino mais ce n'est pas simple avec l'utilisation du port série et des logiciels de développement, il arrivera que le driver "plante" à nouveau et votre module ne sera plus reconnu par Windows !

Ceux qui galèrent :

Un autre Ici :


Ils galèrent mais ils arrivent toujours à faire quelque chose pour le Port_COM refonctionne...

La seule solution ?

Résinstaller le logiciel complet Arduino !!! Ça fonctionne mais c'est curieux non ? 

Attention : ne pas oublier de faire un petit redémarrage de Windows avant de replugguer votre module Arduino sinon il risque de ne pas prendre le bon driver..

Comment le logiciel peut-il se mettre à planter alors que ce n'est "que du soft". Et bien la réponse est dans la question.

Ce n'est pas tout à fait "que du soft", l'UART serial COM est sollicitée et l'on sait que sous Windows avant Windows 10 ce module est très perfectible. Il manque notamment une couche de virtualisation qui vous permettrait de connecté à une machine de cloud mais cela non plus ne fonctionne pas.

Mais j'ai peut-être une autre solution il vous faut savoir que le driver arduino se trouve dans :

\\Program Files (x86)\Arduino\drivers\arduino.inf

Ce qui peut vous permettre de le réinstaller en faisant :

Démarrer -> Périphériques et imprimantes :

Je vois mon module Arduino dans mon système windows

Où dans :

Menu Démarrer -> Panneau configuration -> Système -> Gestionnaire de périphérique 

Vous pouvez alors faire bouton droit mettre à jour et aller chercher le .inf ci-dessus cité. Mais en général si vous voyez votre module dans Windows, c'est que tout va bien ... Grrrrr !

Sinon vous pensez que tous ces caractères chinois ont quelques chose à voir avec ces plantages ...

Mauvaise gestion du port série ce communication avec le module Arduino
Mauvaise gestion du port série ce communication avec le module Arduino

Vous avez le site officiel arduino qui raconte en gros la même chose ...


Le problème c'est que quand votre module n'est pas reconnu "unknown device" vous ne pouvez pas le mettre à jour. Le message que j'ai eu en essayant de mettre à jour c'est :

"il n'existe pas de driver compatible avec windows 64 bits"

Autre dépannage

Si un driver "Unknown device" devait s'installer à la plage de "Arduino ..." n'hésitez pas à désinstaller le driver correspondant et à redémarrer votre machine lorsque vous enficherez votre module dans le port USB, windows devrait reprendre le bon driver ...

Franchement, c'est de très mauvaise augure. Comment peut-on imaginer de réaliser un développement de bonne qualité dans ces conditions... 

Les Athéniens s'atteignirent...

Mise à jour en novembre 2021

Je ne peux pas vous expliquer pourquoi mais depuis, je n'ai plus aucun problème de driver ! Le driver Arduino Bluno Mega est resté stable.

lundi 28 août 2017

Embarcadero déploiement d'une application stand alone pour Windows

Vous avez développé une application en C++ avec Embarcadero et maintenant vous aimeriez qu'elle fonctionne sans devoir copier dans le répertoire d'exécution toutes les DLL nécessaires à l'exécution de l'application.

C'est le genre d'information que l'on peut mettre du temps à trouver dans la documentation alors je vous livre la solution. 

Dans les options du projet allez chercher : Options de projet -> Lieur C++ -> Lier avec la bibliothèque d'exécution Delphi :

bibliothèque d'exécution Delphi et RTL Dynamique

Dans les options de Package : Option de projet->Packages-> Lier avec les packages d'exécution :

Lier avec les packages d'exécution

That's All Folks!

Have fun! Et surtout n'oubliez pas ce n'est que du soft !