FAQ C++Consultez toutes les FAQ

Nombre d'auteurs : 35, nombre de questions : 368, dernière mise à jour : 17 novembre 2018  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de http://www.developpez.com et de l'expérience personnelle des auteurs.

Je tiens à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes ; les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur ou si vous souhaitez devenir rédacteur, lisez ceci.

Sur ce, nous vous souhaitons une bonne lecture.


SommaireGénéralités sur le C++Bibliothèques complémentaires (4)
précédent sommaire suivant
 


reprennent une liste des bibliothèques les plus utiles téléchargeables gratuitement.

Mis à jour le 9 octobre 2003 LFE

Le C++ standard ne permet pas de créer une interface graphique. Cela a déjà été discuté, doit probablement l'être encore et le sera encore longtemps. Il faut pour cela utiliser une des très nombreuses bibliothèques spécialisées existantes. Les plus courantes sont :

  • les MFC de Microsoft, pour Windows et destinée à être utilisée avec Visual C++.
  • la VCL de Borland, pour Windows et destinée à être utilisée avec C++ Builder.
  • Qt de Digia, pour Linux/UNIX, Mac OS X, Windows, etc. avec des licences spécifiques (dont certaines libres). Qt dispose d'une rubrique à part entière : Rubrique Qt.
  • wxWidgets, anciennement wxWindows open source, pour Linux/UNIX, Mac, Windows (y compris Windows 3.1 et Windows CE), et d'autres encore. Utilisable avec un grand nombre de compilateurs.

Il en existe encore beaucoup d'autres. La The GUI Toolkit, Framework Page en recense une bonne partie, parmi lesquelles les bibliothèques portables et gratuites suivantes sont régulièrement citées :

Ces bibliothèques sont pour la plupart assez anciennes, ce qui est souvent un gage de maturité. Mais la conséquence est qu'elles utilisent finalement assez peu les possibilités du C++, chose qui devient possible depuis assez peu de temps grâce la généralisation de très bons compilateurs. Ainsi, les bibliothèques précédentes utilisent toutes leur propre classe chaîne de caractères au lieu de std::string, leurs propres conteneurs au lieu de ceux de la STL, n'utilisent pas les exceptions, les espaces de noms…

D'autres bibliothèques plus récentes ont la réputation d'être écrites de façon plus "moderne". On peut citer à ce titre le Visual Component Framework ou encore gtkmm qui est un wrapper C++ pour la bibliothèque C GTK+. Le revers de la médaille est que ces bibliothèques sont plus difficilement portables.

On fait la distinction entre programmer en C++ standard et utiliser une de ces bibliothèques C++. Cela veut dire que les forums C++ ne sont généralement pas le bon endroit pour poser une question relative à l'une d'entre elles. De même cette FAQ ne traite pas de leur utilisation.

Si vous avez des questions relatives aux MFC, orientez vous vers le forum Visual C++, la FAQ Visual C++ ainsi que la page de cours et tutoriels Visual C++.

Si vous avez des questions relatives à la VCL, orientez vous vers le forum Borland C++ Builder, la FAQ Borland C++ Builder ainsi que la page de cours et tutoriels Borland C++ Builder.

Pour les autres bibliothèques, vous pouvez utiliser le Forum C++. Si personne ne vous répond, orientez-vous vers le site / newsgroup / mailing list dédié au toolkit que vous utilisez. À ce titre on peut citer :
  • La Qt-interest Mailing List pour des questions sur Qt.
  • Le newsgroup comp.soft-sys.wxwindows pour des questions sur wxWidgets.
  • Les FAQ et documentation en ligne dédiées à chacun de ces tooklits sur leur site respectif.

Concernant wxWidgets, vous pouvez lire les articles en français sur la page personnelle de CGi.

Mis à jour le 18 avril 2005 Aurelien.Regat-Barrel Luc Hermitte

Il n'existe malheureusement rien en C++ standard qui ait un rapport avec la gestion d'images, quelque soit leur format. Ainsi pour charger, sauvegarder, récupérer les dimensions d'une image, faire du dessin ou gérer un quelconque graphisme, il faudra se tourner vers une bibliothèque externe :

  • Le GDI+ (API C++, gère les formats les plus courants, seulement sous Windows).
  • OpenIL (bibliothèque C, multiplateforme, gère une vingtaine de formats d'images).
  • FreeImage (bibliothèque C++, multiplateforme, gère elle aussi une bonne vingtaine de formats).
  • CxImage (classe Windows, gère une dizaine de formats d'images).
  • Anti-Grain Geometry (bibliothèque C++ portable pour faire du rendu 2D haute qualité).
  • ImageMagick (multilangage, multiplateforme, gère plus de 100 formats d'images).
  • CImg (bibliothèque C++ sous forme d'un seul en-tête, multiplateforme, plutôt simple à utiliser).
  • OpenCV (bibliothèque multilangage, multiplateforme, temps réel et plutôt complète).
  • Et bien sûr si vous utilisez un toolkit tel que Qt, les MFC ou encore la VCL, n'oubliez pas que ceux-ci proposent généralement ces classes pour manipuler facilement les images.

D'autres bibliothèques de manipulation d'images sont listées et évaluées sur cette page : Investigating Image Libraries

Si vous avez du courage et du temps à perdre vous pouvez aussi construire votre propre gestion des images ; pour y arriver vous aurez besoin des descriptions des formats, que vous pourrez trouver entre autre sur http://www.wotsit.org.

Enfin, si votre but est de développer une interface graphique alors reportez-vous à la question Comment créer une interface graphique en C++ ?.

Mis à jour le 3 février 2007 Aurelien.Regat-Barrel Laurent Gomila

Le C++ ne propose rien pour gérer les dates, ni de base ni dans sa bibliothèque standard. Afin d'effectuer des opérations sur les dates et les heures, il vous faudra donc au choix :

  • Utiliser des fonctions et structures de la bibliothèque standard du C (voir FAQ C : gestion des dates et heures).
  • Utiliser les classes CTime et CTimeSpan si vous développez avec Visual C++ et les MFC (voir FAQ VC++ : les dates).
  • Utiliser les classes TDate et TDateTime si vous développez avec C++ Builder et la VCL (voir FAQ C++ Builder : gestion du temps).
  • Utiliser la bibliothèque boost::date_time si vous souhaitez garder un code C++ portable.
  • Enfin, n'oubliez pas que bon nombre de bibliothèques d'interfaces graphiques (WxWidgets, Qt…) proposent également des classes de gestion du temps.

Mis à jour le 17 octobre 2005 Laurent Gomila

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2019 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.