IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Compilation Visual Studio 2017 et bibliothèque SDL


Sujet :

SDL

  1. #1
    Membre habitué Avatar de Hamza
    Homme Profil pro
    Data Analyst
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Data Analyst
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Points : 164
    Points
    164
    Par défaut Compilation Visual Studio 2017 et bibliothèque SDL
    Bonjour,

    Voila le code source

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    #include "sdl.h"
    #include "stdlib.h"
    #include "stdio.h"
    #include "sdl_image.h"
     
    int main(int argc, char* args[])
    {
     
    	SDL_Surface *fenetre = NULL, *image = NULL, *image2 = NULL;
    	SDL_Rect positionFond, positionImg2;
     
    	bool exec = true;
     
    	positionFond.x = 0;
    	positionFond.y = 0;
    	positionImg2.x = 255;
    	positionImg2.y = 255;
     
    	SDL_Init(SDL_INIT_VIDEO);
     
    	SDL_WM_SetIcon(IMG_Load("..//images//Icone.bmp"), NULL);
    	SDL_WM_SetCaption("Jeu d'alignement", NULL);
    	fenetre = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE);
     
    	image = IMG_Load("..//images//fond.bmp");
    	SDL_BlitSurface(image, NULL, fenetre, &positionFond);
     
    	image2 = IMG_Load("..//images//sourir.png");
    	//SDL_SetColorKey(image2, SDL_SRCCOLORKEY, SDL_MapRGB(image2->format, 255, 255, 255));
    	SDL_BlitSurface(image2, NULL, fenetre, &positionImg2);
     
    	SDL_Flip(fenetre);
     
    	SDL_Event event;
    	while (exec)
    	{
    		SDL_WaitEvent(&event);
    		if ((event.type == SDL_KEYDOWN) || (event.type == SDL_QUIT))
    		{
    			exec = false; break;
    		}
    		switch (event.key.keysym.sym)
    		{
    		case SDLK_ESCAPE: exec = false; break;
    		}
     
    	}
    	SDL_FreeSurface(image);
    	SDL_FreeSurface(image2);
    	SDL_Quit();
     
    	return EXIT_SUCCESS;
    }
    et voila le message d'erreur en sortie lorsque je génére la solution.

    Nom : Erreur.png
Affichages : 1122
Taille : 101,7 Ko

    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    Votre SDL utilise la C-Runtime, supprimez l'option /"NODEFAULTLIB" des paramètres de votre projet.

  3. #3
    Membre habitué Avatar de Hamza
    Homme Profil pro
    Data Analyst
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Data Analyst
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Points : 164
    Points
    164
    Par défaut
    je n'ai jamais utilisé cette option d'ailleurs elle n'ai même pas paramétré

    Nom : erreur2.png
Affichages : 989
Taille : 164,5 Ko

    si toute elle doit existé ailleurs je serais reconnaissant de me dire ou la trouver et comment la désactivé.

    Merci.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    Oups, mal lu les messages d'erreur.

    https://stackoverflow.com/questions/...-iob-func-sdl2

    Donc utilisez des versions compatibles de la SDL avec la C-Runtime que vous comptez utiliser.

  5. #5
    Membre habitué Avatar de Hamza
    Homme Profil pro
    Data Analyst
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Data Analyst
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Points : 164
    Points
    164
    Par défaut
    Bonjour et merci pour ta réponse,

    Si j'ai bien compris je suis obliger d'utiliser SDL2 avec VS2017 et que la SDL 1.2 n'est pas compatible ?

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    >Si j'ai bien compris je suis obliger d'utiliser SDL2 avec VS2017 et que la SDL 1.2 n'est pas compatible ?
    Non.
    Si vous n'avez pas la version précompilée de la SDL pour votre compilateur et configuration, vous pouvez toujours la générer vous-même.

  7. #7
    Membre habitué Avatar de Hamza
    Homme Profil pro
    Data Analyst
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Data Analyst
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Points : 164
    Points
    164
    Par défaut
    ok, je vais faire un recap de toute les étape que j'ai fait :

    j'ai telecharger la SDL 1.2 dans le site officiel qui se trouvais dans la partie : Development Libraries win 32 : SDL-devel-1.2.15-VC.zip (Visual C++)

    puis j'ai suivie le tuto du site open classrooms.

    Donc,

    pour ce qui est : Si vous n'avez pas la version précompilée de la SDL pour votre compilateur et configuration, vous pouvez toujours la générer vous-même.

    comment on peut faire sa ?

    Merci

  8. #8
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Je ne suis pas expert Visual Studio mais l'erreur est est explicite il y a un conflit avec msvcrt.lib

    Mais si tu changer d'IDE ne te gêne pas tu peux utiliser un tout fait pour Code::Block : https://jeux.developpez.com/telechar...ur-Code-Blocks

    Ah oui je me répète mais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #include "sdl.h"
    #include "stdlib.h"
    #include "stdio.h"
    #include "sdl_image.h"
    C'est clairement pas standard...

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    Citation Envoyé par Kannagi Voir le message
    Je ne suis pas expert Visual Studio mais l'erreur est est explicite il y a un conflit avec msvcrt.lib
    "msvcrt.lib", c'est l'une des lib de la C-Runtime fournies par Visual Studio.

    Chaque version du compilateur de VS vient avec sa version de la C-Runtime et demande l'installation des "Redistribuables C-Runtime" associés à la version de VS sur les machines cibles du programme.

    Il est possible d'utiliser des versions antérieures des C-Runtime, mais il faut faire les réglages adéquats.

    Citation Envoyé par Kannagi Voir le message
    Mais si tu changer d'IDE ne te gêne pas tu peux utiliser un tout fait pour Code::Block : https://jeux.developpez.com/telechar...ur-Code-Blocks
    Je ne vois pas trop l'intérêt de l'aiguiller vers un autre IDE, pré-historique, ne disposant même pas d'un compilateur intégré et qui lui demandera toujours de régler les problèmes de compatibilité de librairies.

    Citation Envoyé par Hamza Voir le message
    ok, je vais faire un recap de toute les étape que j'ai fait :

    j'ai telecharger la SDL 1.2 dans le site officiel qui se trouvais dans la partie : Development Libraries win 32 : SDL-devel-1.2.15-VC.zip (Visual C++)
    Ouais, bon, déjà que le support de la version actuelle ne semble pas tip-top, ça va être folklo.

    Ils vous balancent une version pré-compilée en ne vous indiquant pas la version de la C-Runtime/VS qui a servie à la compiler.
    Moi, j'appelle ça des guignols qui en ont rien à foutre des débutants sous Windows.

    Franchement, ça sert à rien de travail avec ces vieux machins.
    Prenez la version 2, avec un tutoriel à jour et correct (putain, à croire que les cours OCR, c'est que du caca) et compilez vous-même cette librairie avec le compilateur que vous voulez utiliser pour votre programme.

    Citation Envoyé par Hamza Voir le message
    puis j'ai suivie le tuto du site open classrooms.
    Fuyez pauvres fous, fuyez.
    Non mais, référencer des outils vieux de 12 et plus de 20 ans, c'est une mascarade.
    En plus, la manière cracra la plus efficace de foutre en l'air tout votre système, GG OCR !!!

    Citation Envoyé par Hamza Voir le message
    Donc,

    pour ce qui est : Si vous n'avez pas la version précompilée de la SDL pour votre compilateur et configuration, vous pouvez toujours la générer vous-même.

    comment on peut faire sa ?

    Merci
    Téléchargez les sources, lisez la documentation, et utilisez VS pour générer cette SD.dll.

  10. #10
    Membre habitué Avatar de Hamza
    Homme Profil pro
    Data Analyst
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Data Analyst
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Points : 164
    Points
    164
    Par défaut
    Bonjour,

    Je vous remercie de vos réponse, Finalement je vais bosser avec la SDL 2. Après avoir effectuer les modifications nécessaires j'ai réussi a obtenir le résultat souhaitez.

    Nouveau code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    #include <sdl.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <sdl_image.h>
     
    int main(int argc, char* args[])
    {
     
    	SDL_Surface *image = NULL;
    	SDL_Texture * texture;
    	bool exec = true;
     
    	SDL_Rect Fond = { 0, 0, 800, 600 }, img = { 400, 300, 64, 64 };
     
    	SDL_Init(SDL_INIT_VIDEO);
    	SDL_Window *fenertre = SDL_CreateWindow("Jeu alignement", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_SWSURFACE);
    	SDL_Renderer * Rendu = SDL_CreateRenderer(fenertre, -1, 0);
     
    	image = IMG_Load("..//images//fond.bmp");
    	texture = SDL_CreateTextureFromSurface(Rendu, image);
    	SDL_RenderCopy(Rendu, texture, NULL, &Fond);
     
    	image = IMG_Load("..//images//sourir.bmp");
    	texture = SDL_CreateTextureFromSurface(Rendu, image);
    	SDL_RenderCopy(Rendu, texture, NULL, &img);
     
    	SDL_RenderPresent(Rendu);
     
    	SDL_Event event;
     
    	while (exec)
    	{
    		SDL_WaitEvent(&event);
    		if ((event.type == SDL_KEYDOWN) || (event.type == SDL_QUIT))
    		{
    			exec = false; break;
    		}
    		switch (event.key.keysym.sym)
    		{
    		case SDLK_ESCAPE: exec = false; break;
    		}
     
    	}
    	SDL_DestroyTexture(texture);
    	SDL_DestroyRenderer(Rendu);
    	SDL_DestroyWindow(fenertre);
    	SDL_FreeSurface(image);
    	SDL_Quit();
     
    	return EXIT_SUCCESS;
    }
    affichage :

    Nom : img.png
Affichages : 983
Taille : 620,7 Ko

    ce qu'il savoir aussi, avec la SDL 1.2 le code source afficher dans le poste d'ouverture de la discutions fonctionnement parfaitement bien sous VS2013, les problèmes rencontré été sous la version VS2017.

    peut être que j'aurais du commencer par préciser ce point

    je tien a m'excusé si je vous ai fait perdre votre temps

    Merci a vous

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Hamza Voir le message
    ce qu'il savoir aussi, avec la SDL 1.2 le code source afficher dans le poste d'ouverture de la discutions fonctionnement parfaitement bien sous VS2013, les problèmes rencontré été sous la version VS2017.
    Ce qu'on se tue à te dire depuis le début : les .lib ne sont pas compatibles d'une version à l'autre. Si tu veux utiliser un .lib il faut récupérer celui qui correspond exactement à ta version de VS.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/11/2017, 09h16
  2. [Débutant] Installation de bibliothèque via Pip sur Visual Studio 2017
    Par Exentius dans le forum Visual Studio
    Réponses: 0
    Dernier message: 11/05/2017, 14h05
  3. Problème de compilation Visual Studio 2008
    Par CEDupuis dans le forum Visual Studio
    Réponses: 4
    Dernier message: 04/01/2011, 16h32
  4. problème compil visual studio 2008
    Par bitrate dans le forum Visual C++
    Réponses: 1
    Dernier message: 28/04/2008, 08h41
  5. Problème compilation visual studio
    Par touys dans le forum MFC
    Réponses: 2
    Dernier message: 24/05/2007, 10h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo