Bibliothèques utiles en C++ pour Windows et Linux
mklib advio advio2 adviOGL Wind
TPBD mk_socket SectionPC
Sauf mention contraire ces bibliothèques doivent fonctionner avec Visual C++ (toutes
versions) et Dev C++. Il est probable qu'elles fonctionnent sur n'importes quelle
version de mingw où même sur n'importe quel portage de gcc pour windows, mais je
n'ais pas essayé sur d'autre version que Dev C++, donc je ne peut rien vous promettre.
Toutes ces bibliothèques ont été écrites au cours de projet plus ou moins scientifiques.
Elles ont donc pour but de réaliser leurs tâches de la manière la plus simple possible
(que ce soit au niveau de leur code, ou de l'interface pour le programmeur) sans
pour autant sacrifier aux capacités. Elles sont donc parfaitement adaptées aux débutants
ou à ceux qui veulent pouvoir se concentrer sur l'écriture de leurs programmes sans avoir envie
de se compliquer la vie avec des bibliothèques complexes.
Toutes les bibliothèques distribuées en open source le sont sous la
licence SectionPC.
Les codes sources de ces bibliothèques (il s'agit de celles qui ont le logo Linux)
se trouvent dans les même archives que les binaires. Pour toutes les bibliothèques
les archives contiennent les binaires pour Windows (Visual C++ et Dev C++) mais
pas pour d'autre système. Vous devrez donc les compiler vous-même. Les
codes sources devraient pouvoir être compilé sur Windows ainsi que sur la plupart des système
de type Unix, mais je ne peut pas garantir que le logiciel fonctionnera sur votre
système.
Le téléchargement des bibliothèques en open source (marquées par le logo
) entraine l'acceptation de la licence SectionPC sous laquel
elles sont diffusés.
Pour les autres bibliothèques, les informations sur la licence sous laquel elles
sont diffusées sont disponibles dans leur archive.
- mklib : Cliquez
ici pour télécharger la bibliothèque mklib.
Cette bibliothèque est une implémentation minimale de certaines fonctionnalités
de la libc. Elle contient entre autre des fonctions de manipulations de chaines
de caractères, de conversions entres des types numériques et des chaines de caractères
(et vice-versa), un générateur de nombre aléatoire de meilleure qualité que celui
qu'il y a dans la bibliothèque standard, et quelques conteneurs avec des implémentations
très simple (stack et bitset).
Cette bibliothèque est ma vision personelle de la libc. Si j'ai la plupart du temps
essayé de garder la même syntaxe et les même fonctionnalités que dans la bibliothèque
standard, je ne peut pas garantir que toutes mes fonctions produisent exactement
le même résultat (principalement en ce qui concerne les conversions). Certaines
de mes implémentations sont très proches des originales (comme pour la classe bitset
par exemple) et d'autres moins (comme pour la classe stack).
Si vous utilisez Dev C++, cette
bibliothèque est nécessaire pour pouvoir utiliser advio, advio2, adviOGL et
Wind.
- advio : Cliquez
ici pour télécharger la bibliothèque advio.
Cette bibliothèque est à l'origine concu comme un remplacement de la bibliothèque
conio qui n'est plus implémentée dans son intégralité par les compilateurs modernes.
Elle donne plus d'option
sur la console que les bibliothèque standard (stdio et iostream) en permettant entre
autre de gérer la couleur du texte et du fond, la position du curseur, le titre
de la fenêtre, un mode pause, et bien d'autre chose.
De plus les programmes qui utilisent cette bibliothèque sont bien plus petit que
ceux qui utilisent iostream (la bibliothèque fait 20ko contre plus de 100 pour iostream)
et profitent
tout de même d'une gestion pratique (avec des objet comme cin et cout).
- advio2 : Cliquer
ici pour télécharger la bibliothèque advio2.
Beaucoup de langages (Caml, Basic, etc.) possède en standard une bibliothèque graphique
très simple permettant de tracer des traits, de contours, etc. Mais celà n'existe
pas en C++.
C'est ce manque que ma bliothèque veut pallier. Elle permet de gérer plusieurs
fenêtres graphiques(autant que vous voulez) et des surfaces qui ne s'affiche pas
mais que vous pouvez utilisez pour dessiner néanmoins.
Les possibilités graphiques offerte sont, entre autre, la gestions des couleurs
de premier plan et d'arrière plan, de tracé simple (points, traits, cercles, etc.),
d'un système de coordonnées personnalisées, etc.
Mais ma bibliothèque va plus loin que celà, car vous pouvez de plus gérer les entrées/sorties du clavier et de la souris par des
appels bloquants ou bien par des fonctions de rappels (callback).
Et les possibilités offertes sont encore nombreuses. Mais surtout, plus encore que
les autres bibliothèques que je présente ici, c'est la simplicité d'utilisation qui est véritablement
intéressante car réaliser certaines choses tout à fait possible avec d'autre bibliothèques
comme GDI ne prend avec la mienne que quelques lignes là où il en aurait fallu des
dizaines ou des centaines (pour la gestion des fenêtres notamment) avec d'autres
bibliothèques.
- adviOGL : Cliquer
ici pour télécharger la bibliothèque adviOGL.
Cette bibliothèque permet d'utiliser OpenGL avec des objets de type graphics (de
la bibliothèque advio2) pour manipuler la fenêtre et les entrée/sortie. Elle permet
donc de se passer de la SDL lourde et peu commode et de Glut obsolète et tout aussi
lourd.
Cette bibliothèque n'en est qu'à ses débuts donc le nombre de ses fonctionnalités
est
limité, mais en contrepartie elle évolue assez vite (et si vous avez besoin d'une
fonctionnalité, il y a de forte chance qu'elle apparaisse, surtout si vous m'envoyer
un mail pour m'en faire part).
L'architecture de la lib est tourné vers la liberté pour le programmeur qui l'utilise.
C'est à dire que vous pouvez vous en servir avec une boucle d'affichage comme avec
Glut, ou sans si vous préférez. Et vous bénéficiez de la gestion pratique des événements
utilisateurs de advio2 (contrairement à la gestion à base de message de la SDL).
- Wind: Cliquer ici pour télécharger la bibliothèque Wind.
Cette bibliothèque contient des fonctions permettant d'utiliser très simplement
certaines fonctionnalités plus ou moins avancées de Windows. Il s'agit à la base
des fonctions interessantes de SectionPC réécrites, corrigées ou simplifiées si
nécessaires.
Pour l'instant Wind permet d'utiliser le presse papier, la base de registre et le
moteur de script de Windows.
- TPBD: Cliquer ici pour télécharger la bibliothèque TPBD.

Cette bibliothèque est un moteur de très petite base de données (d'où le nom). Plus
précisément, il permet de gérer des bases de données binaires constituée d'un
nombre donnée d'enregistrement que vous pouvez indexer par des entiers (sinon, pour plus d'explication,
se reporter au fichier TPBD.pdf dans l'archive, car, une fois n'est pas coutume,
j'ai écrit un véritable mode d'emploi pour cette bibliothèque).
- mk_socket : Cliquer ici pour télécharger la bibliothèque mk_socket.

Cette bibliothèque implémente une classe mk_socket permettant de gérer de manière
très simple les sockets (pour permettre des connexions réseau). Cette bibliothèque
permet d'écrire aussi bien des logiciels clients que des serveurs, même si elle est limitée
pour l'instant à des connexions TCP.
Cette bibliothèque est assez récente (en fait non, mais elle n'est vraiment utilisable
que depuis peu), il lui manque donc certaine fonctionnalité comme une véritable
gestion des erreurs. Elle est néanmoins déjà tout à fait utilisable.
- Obsolète : SectionPC: Cliquer
ici pour télécharger la version Visual C++,
ou la version Dev C++ (et gcc) de la bibliothèque
SectionPC.
Cette bibliothèque là contient toutes sorte de choses. Mais je ne la développe
plus. Beaucoup de fonctionnalités ne sont pas tout à fait achevées, ou alors dans d'anciennes
versions. Il n'y a que deux fonctionnalités qui sont interessantes d'après moi :
la gestion du
presse papier et celle de la base de registre. Dans les deux cas j'ai essayé de
faire aussi simple que possible à l'utilisation (pour la gestion de la base de registre
ce n'est pas tout à fait réussi).
Pour toutes questions, suggestions, remarques, etc. vous pouvez m'écrire à :
lib@sectionpc.info.
dernière mise à jour : 13 juillet 2006