Simple and Fast Multimedia Library

Transcription

Simple and Fast Multimedia Library
Simple and Fast Multimedia Library
SFML et Visual studio
Introduction
Ce tutoriel est le premier que vous devriez lire si vous utiliser SFML avec l'EDI Visual Studio (compilateur Visual C++). Il va vous
expliquer comment configurer vos projets SFML.
Installer SFML
Tout d'abord, vous devez télécharger le SDK SFML depuis la page des téléchargements. (SFML 2.1)
Vous devez télécharger le package qui correspond à cotre version de Visual C++. En effet, une bibliothèque compilée avec VC++
9 (Visual Studio 2008) ne sera pas compatible avec Visual C++ 10 (Visual Studio 2010) par exemple.
Vous pouvez ensuite décompresser l'archive SFML où vous le souhaitez (exp. C:\SFML).
Créer et configurer un projet SFML sous Visual Studio
La première chose à faire est de choisir quel type de projet créer : vous devez sélectionner "Win32 application". L'assistant offre
quelques options pour personnaliser le projet : choisissez "Console application" si vous voulez la console, ou "Windows
application" si vous n'en avez pas besoin. Cochez la case "Empty project" si vous ne voulez pas être embêté avec du code généré
automatiquement.
Pour les besoins de ce tutoriel, vous devez également créer un fichier main.cpp et l'ajouter immédiatement au projet, de manière
à avoir accès aux options C++ (sinon, Visual Studio ne sait pas quel langage vous allez utiliser dans le projet). Nous verrons plus
tard quoi mettre dedans.
Maintenant, nous devons dire au compilateur où trouver les en-têtes SFML (fichiers .hpp), et à l'éditeur de liens où trouver les
bibliothèques SFML (fichiers .lib).
Dans les propriétés du projet (bouton droit sur le projet >propriétés), ajoutez :
o
Le chemin vers les en-têtes SFML (<installation-de-sfml>/include) à C/C++ » General » Additional Include Directories
o
Le chemin vers les bibliothèques SFML (<installation-de-sfml>/lib) à Linker » General » Additional Library Directories
Ces chemins sont les mêmes en configuration Debug et Release, vous pouvez donc les affecter globalement au projet ("All
configurations").
L'étape suivante est de lier votre application aux bibliothèques SFML (fichiers .lib) dont votre code a besoin. SFML est composée
de 5 modules
(système, fenêtrage, graphique, réseau et audio), et il
y a une bibliothèque pour chacun.
Les bibliothèques doivent être ajoutées dans les propriétés du projet, dans Linker » Input » Additional Dependencies. Ajoutez
toutes les bibliothèques SFML dont avez besoin, par exemple "sfml-graphics-s-d.lib", "sfml-window-s-d.lib" et "sfml-system-sd.lib".
Il est important de lier les bibiothèques qui correspondent à la configuration : "sfml-xxx-d.lib" pour Debug, and "sfml-xxx.lib" pour
Release. Un mauvais mélange pourrait entraîner des crashs.
Pour avoir SFML directement intégrée à votre exécutable, sans devoir ajouter les DLLs près de l’exécutable, vous devez lier le
projet à la version statique. Les bibliothèques statiques de SFML ont le suffixe "-s" : "sfml-xxx-s-d.lib" pour Debug, et "sfml-xxxs.lib" pour Release.
Dans ce cas, vous devrez aussi définir la macro SFML_STATIC dans les options préprocesseur de votre projet.
Si vous ne connaissez pas les différences entre les bibliothèques dynamiques (aussi appelées "partagées") et statiques, et ne
savez pas lesquelles utiliser, vous pouvez faire une petite recherche sur Google, vous devriez trouver de bons articles/messages
pour vous aider.
Votre projet est prêt, écrivons maintenant un peu de code pour voir si tout cela fonctionne. Copiez le code suivant dans le fichier
main.cpp :
#include <SFML/Graphics.hpp>
using namespace sf;
int main()
{
RenderWindow maFenetre(VideoMode(200,200), "Fentre SFML");
CircleShape unCercle(100.f);
unCercle.setFillColor(Color::Red);
while (true)
{
maFenetre.clear();
maFenetre.draw(unCercle);
maFenetre.display();
}
return 0;
}
Puis lancez-le, et si tout s'est bien passé vous devriez voir ceci :
On s’est limité ici au cas de bibliothèque statique avec mode Debug. Pour plus d’information aller sur la page web d’origine :
SFML and Visual Studio
Ceci est une version modifiée de SFML and Visual Studio Copyright © Laurent Gomila

Documents pareils