Ce cours est visible gratuitement en ligne.

Got it!
Installer la librairie SDL avec Dev-C++

Installer la librairie SDL avec Dev-C++

Last updated on Tuesday, October 29, 2013

Introduction du cours

Vous êtes passionné par les cours de C/C++, vous rêvez de programmer et d'utiliser des fenêtres, ou bien encore vous bavez à la simple vue de l'acronyme SDL ? :p
C'est normal car la librairie graphique Simple DirectMedia Layer (SDL) permet de réaliser des programmes qui utilisent des images, des sons, vos périphériques comme la souris, le clavier et le lecteur de CD-ROM, etc.

Mais avant de pouvoir l'utiliser afin de développer vos programmes, il va falloir l'installer. ;)

Ce mini-tuto va donc vous aider à installer la librairie SDL avec l'IDE DEV-C++. Pour vous faciliter la tâche, les fichiers à télécharger sont disponibles via les liens suivants :

Ah ! J'allais oublier ! Avant d'installer la librairie SDL, il vous serait favorable de lire attentivement les cours sur le C/C++. ;)

Téléchargement de la librairie

Ouvrez le logiciel Dev-C++. Dans la barre d'outils, cliquez sur Outils >> Nouvelles versions/packages.

Image utilisateur

La fenêtre WebUpdate s'ouvre :

Image utilisateur

Dans la liste déroulante Select devpack server, sélectionnez devpacks.org community Devpacks comme ci-dessus, puis cliquez sur le bouton Check for Updates.

Le module de mise à jour de Dev-C++ va donc se connecter au serveur pour récupérer une liste de librairies, comme le montre la capture d'écran ci-dessous :

Image utilisateur

Lorsque le module de mise à jour à fini de récupérer la liste des librairies, vous devez sélectionner la librairie SDL et, pour finir, cliquer sur le bouton Download Selected.

Image utilisateur

Le module de mise à jour télécharge donc la librairie SDL. :)

Lorsque la librairie SDL est entièrement téléchargée un message vous avertit, veuillez alors cliquer sur ok.

Image utilisateur

Pour finaliser l'installation de la librairie, l'Installation Wizard se lance, il ne vous reste plus qu'à accepter l'installation et ses formalités en cliquant sur Next.

Téléchargement de la DLL

Vous vous dites, comment ça une DLL ? On vient juste d'installer la librairie ! :colere:

Oui, oui c'est vrai ! Mais il vous faut encore une DLL. La DLL de la librairie SDL : SDL.dll.
Ça fait beaucoup de SD... DL... LL...SD... C'est vrai. :p

Pour en revenir à notre DLL, vous devez pour commencer télécharger le fichier zip nommé SDL-1.2.9-win32.zip pour Windows.

Vous trouverez donc ce fichier sur le site officiel de Simple DirectMedia Layer dans le sous-menu Runtime Libraries: http://www.libsdl.org/download-1.2.php

Lorsque que vous avez récupéré le fichier compressé DL-1.2.9-win32.zip, ouvrez-le.
Vous voyez dans ce .zip un fichier README-SDL.txt, et un autre fichier SDL.dll. Miracle ! :p J'exagère c'est vrai ! Le voila notre fichier DLL.

Image utilisateur

Ce fichier SDL.dll va vous être très utile. Car pour chaque projet qui utilisera la librairie SDL, il faudra copier ce fichier dans le dossier de votre projet, car sinon il est impossible de faire fonctionner votre programme ! ;)

Tester l'installation

Création du projet

Pour tester votre installation de la librairie, créez un nouveau projet dans Dev-C++ : Fichier >> Nouveau >> Projet.

Sélectionnez Empty project, cochez Projet C et donnez-lui un nom comme Test SDL, par exemple.

Image utilisateur

Cliquez sur le bouton Ok. Dev-C++ vous demande d'enregistrer le nouveau projet. Enregistrez-le dans un dossier qui lui est approprié. Par exemple dans un dossier nommé Test SDL.

Lorsque votre nouveau projet est crée, faites un clic droit sur le projet Test SDL, et cliquez sur nouveau fichier source.

Image utilisateur

Enregistrez ce nouveau fichier source dans le dossier de votre projet, sous le nom de main.c.

Reste encore à paramétrer les options de votre projet.

Pour paramétrer les options, cliquez sur Projet dans la barre d'outils puis sur Options du Projet.

Image utilisateur

La fenêtre Options du Projet s'ouvre donc !

Pour notre petit test, il faut sélectionner Win32 GUI dans la liste Type, comme ci-dessous.

Image utilisateur

Ensuite sélectionnez l'onglet Paramètres.

Effectuez un copier/coller de la chaîne de caractères suivante -lmingw32 -lSDLmain -lSDL, dans le champ Éditeur de liens de la fenêtre Options du Projet. Voir la capture ci-dessous :

Image utilisateur

Puis, pour valider les options du projet, cliquez sur le bouton Ok.

Il ne vous reste plus qu'à écrire un petit bout de programme pour tester votre installation.

Bah oui, mais quoi ? o_O

Pour vous éviter de trop chercher, je vous donne un petit bout de programme juste après. Faites un copier/coller du petit code ci-dessous dans votre fichier main.c.

#include <stdlib.h>  
#include <SDL/SDL.h> // Librairie SDL
 
int main( int argc, char *argv[ ] )
{
    SDL_Surface *screen; 
    
    if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
    {
        printf( "Impossible d'initialiser SDL:  %s\n", SDL_GetError( ) );
        exit( 1 );
    }
 
    atexit( SDL_Quit ); 
    screen = SDL_SetVideoMode( 640, 480, 16, SDL_HWSURFACE );
 
    if( screen == NULL )
    {
        printf( "Impossible d'initialiser le mode vidéo: %s\n", SDL_GetError( ) );
        exit( 1 );
    }   
 
    SDL_Delay( 3000 );
 
    return 0;
}

Étude du programme

Maintenant, comme disait Napoléon : Ça se Corse !!! ;)

Les directives de préprocesseur

#include <stdlib.h>  
#include <SDL/SDL.h>

Ces deux premières lignes sont les directives de préprocesseur. Elles servent donc à inclure les fichiers stdlib.h (comme d'habitude) et SDL/SDL.h qui se situent dans le dossier où est installé DEV-C++.

Vous avez sans doute remarqué que #include <SDL/SDL.h> était une nouvelle directive de préprocesseur. :o

Cette directive de préprocesseur va inclure la librairie SDL à notre programme. ;)

Quelques fonctions SDL

On crée une variable de type pointeur, qui nous resservira par la suite...

SDL_Surface *screen;

Puis vient la suite du programme. ;)

if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
    {
        printf( "Impossible d'initialiser SDL:  %s\n", SDL_GetError( ) );
        exit( 1 );
    }

On charge dynamiquement puis on initialise la librairie SDL grâce à la fonction SDL_Init(), et ici on choisit le mode vidéo de la librairie avec SDL_INIT_VIDEO.

Si la fonction SDL_Init() est inférieure à 0, c'est que l'initialisation n'a pas fonctionné. On affiche donc qu'il est impossible d'initialiser la librairie avec la fonction printf(), et on affiche l'erreur, grâce à la fonction SDL_GetError().

Si le programme ne se déroule pas normalement, la fonction atexit() exécute la fonction SDL_Quit, ce qui ferme la librairie SDL.

atexit( SDL_Quit );

Si l'initialisation s'est déroulée correctement, on initialise le mode vidéo de la librairie, puis on crée une fenêtre (eh oui c'est trop cool :D ) de dimensions 640x480 pixels, et de profondeur 16 pixels, avec la ligne de code ci-dessous :

screen = SDL_SetVideoMode( 640, 480, 16, SDL_HWSURFACE );

Il y a encore une dernière condition avec if, pour tester si l'initialisation du mode vidéo à bien fonctionné :

if( screen == NULL )
    {
        printf( "Impossible d'initialiser le mode vidéo: %s\n", SDL_GetError( ) );
        exit( 1 );
    }

Si l'initialisation du mode vidéo a échoué, la variable screen est NULL. On affiche donc un message d'erreur... Comme pour l'initialisation de la librairie ! ;)

Enfin si la librairie et le mode vidéo se sont initialisés sans problème, on affiche une fenêtre pendant 3 secondes avec la fonction SDL_Delay() :

SDL_Delay( 3000 );

:o Bah !!! Tu avais dit 3 secondes, et ici il y a 3 000 !!!

Compilation et exécution du programme

Il ne vous reste plus qu'à compiler et exécuter le programme, ;) en cliquant sur le bouton Compiler &amp; Exécuter (F9).

Image utilisateur

Si le programme de test fonctionne correctement, une fenêtre devrait s'ouvrir pendant 3 secondes, puis se fermer toute seule, comme ci-dessous. o_O

Image utilisateur

C'est grand !!! o_O C'est noir, tout noir !!! o_O
Bah oui je sais ! Mais bon ! Il faut bien commencer par quelque chose. Et puis au moins, la librairie SDL est installée et fonctionne !!! :D

Votre librairie SDL est maintenant installée et opérationnelle. :D Il ne vous reste plus qu'à suivre attentivement les cours de développement du Site du Zér0. ^^

Cependant pensez à ne pas oublier de configurer vos projets si vous utilisez la librairie SDL, et n'oubliez pas la directive de préprocesseur :

#include <SDL/SDL.h>

Ainsi que l'initialisation de la librairie... ;)

Bonne continuation...

How courses work

  • 1

    You have now access to the course contents and exercises.

  • 2

    You will advance in the course week by week. Each week, you will work on one part of the course.

  • !

    Exercises must be completed within one week. The completion deadline will be announced at the start of each new part in the course. You must complete the exercises to get your certificate of achievement.

  • 3

    At the end of the course, you will get an email with your results. You will also get a certificate of achievement if you are a

Example of certificate of achievement
Example of certificate of achievement