Traduction modifiée de [[http://wiki.allegro.cc/index.php?title=Windows,_Visual_Studio_2010_and_Allegro_5]]
===== Installez MSVS 2010 =====
La version express de Microsoft Visual Studio 2010 est distribuée gratuitement, suivez ce lien pour l'installer : http://msdn.microsoft.com/fr-fr/gg699327
===== Installez Allegro =====
Sur cette page, récupérez la dernière version précompilé avec MSVC10 (c'est plus simple pour nous) d'Allegro : http://www.allegro.cc/files/ \\
Pendant l'écriture de cet article, la version est 5.0.7.
Extrayez l'archive et placez les dossiers **bin**, **include** et **lib** dans le dossier **C:\allegro\** (créez le si nécessaire).
Explications sur le contenu de chaque dossier :
* **bin** contient les DLLs pour linker votre jeu avec Allegro dynamiquement.
* **include** contient les headers avec les definitions de types, structures et fonctions à inclure dans vos sources.
* **lib** Contient les archives d'objets compilés pour linker votre jeu avec Allegro statiquement.
===== Créer un projet =====
Démarrez MSVS 2010 et créer un nouveau projet de type **projet vide**.\\
Créez au moins un fichier **main.c** sinon la fenêtre de propriétés de votre projet sera incomplète.
L'IDE vous crée le projet avec deux cibles : **Debug** et **Release** qu'il va falloir configurer : dans l'**Explorateur de solutions**, cliquez-droit sur votre **projet**->**Propriétés**.
On distingue maintenant 2 types de compilation (ou plutôt d'édition des liens(linking)) :
* **Dynamique**, Votre exécutable sera plus léger mais il faut prendre soin de distribuer les DLLs avec votre jeu
* **Statique**, Allegro est directement intégré dans l'exécutable de votre jeu, celui-ci sera plus gros
à vous de choisir la meilleur manière de distribuer votre jeu !
==== Dynamique ====
* **C/C++** -> **Général** : modifiez le champ //Autre Dossier Include// et ajoutez **C:\allegro\include**
* **éditeur de liens** -> **Général** : modifiez le champ //Répertoires de bibliothèques supplémentaires// et ajoutez **C:\allegro\lib**
* **éditeur de liens** -> **entrée** : Modifiez le champ //Dépendances supplémentaires// et ajoutez (un par ligne)
**shlwapi.lib\\
psapi.lib\\
winmm.lib\\
opengl32.lib\\
Gdiplus.lib**\\
Pour la cible **Debug** : **allegro-5.0.7-monolith-md-debug.lib**\\
Pour la cible **Release** : **allegro-5.0.7-monolith-md.lib**
* **Propriétés de configuration** -> **Débogage** : Modifiez le champ //Environnement// et ajoutez **PATH=c:\allegro\bin;%PATH%**
==== Statique ====
* **C/C++** -> **Général** : modifiez le champ //Autre Dossier Include// et ajoutez **C:\allegro\include**
* **éditeur de liens** → **Général** : modifiez le champ //Répertoires de bibliothèques supplémentaires// et ajoutez **C:\allegro\lib**
* **éditeur de liens** -> **entrée** : Modifiez le champ //Dépendances supplémentaires// et ajoutez (un par ligne)
**shlwapi.lib\\
psapi.lib\\
winmm.lib\\
opengl32.lib\\
Gdiplus.lib**\\
Pour la cible **Debug** : **allegro-5.0.7-monolith-static-md-debug.lib**\\
Pour la cible **Release** : **allegro-5.0.7-monolith-static-md.lib**
Attention ! avec la méthode statique, il faut définir ALLEGRO_STATICLINK avant d'inclure un header d'allegro :
#define ALLEGRO_STATICLINK
#include
==== Hello World ====
Créez un fichier main.c et collez ce code :
#include
#include
int main(int argc, char **argv)
{
ALLEGRO_DISPLAY *display = NULL;
if(!al_init()) {
fprintf(stderr, "failed to initialize allegro!\n");
return -1;
}
display = al_create_display(640, 480);
if(!display) {
fprintf(stderr, "failed to create display!\n");
return -1;
}
al_clear_to_color(al_map_rgb(0,0,0));
al_flip_display();
al_rest(10.0);
al_destroy_display(display);
return 0;
}
Générez la solution (ou F7) et normalement ça compile et le programme se lance et il affiche une fenêtre noire.
===== Annexes =====
==== Détails sur les libs ====
Dans le dossier **bin** et **lib** se trouvent des fichiers qui suivent une convention de nommage très précise :
allegro[_module]-[version][-monolith][-static]-[mt|md][-debug].[lib|dll]
* -static uniquement pour les .lib : signifie que le fichier inclus ne nécessite pas de DLL, utilisés pour la compilation statique.
* -monolith : version tout-en-un d'allegro : le fichier contient les différents modules d'Allegro ainsi que les dépendances.
* -mt,md : mt signifie que l'on link avec la libc en static (option /MT), évite d'imposer l'installation de vcredist_x86.exe, mais produit un binaire bien plus gros.
* -debug : compile avec les informations de débogage.
==== Redistribution de votre jeu ====
Les jeux compilés avec MSVS on besoin des MSVC runtime libraries pour tourner.\\
Vos joueurs devront installer vcredist_x86.exe, disponible à cette adresse :\\
http://www.microsoft.com/download/en/details.aspx?id=5555