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 :

generation de code sous visual express c++


Sujet :

SDL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Points : 115
    Points
    115
    Par défaut generation de code sous visual express c++
    bonjour,
    je possede visual c++ 2008 et j'ai un gros probleme,

    a vrai dire j'avasi une erreur de compilation "externe non resolu" sur la class vector (le .h compiler mais dés que je voulais retourner un vector dans le .cpp j'avais l'externe non resolu au moment de l'edition des liens)
    apres de longue recherche j'ai vu qu'il fallais changer la runtime bibliotheque de facon a choisir
    "DLL de debogage multiThread"
    au lieu de
    "DLL multithread"
    sauf que le probleme maintenant c'est que le debogeur n'a plus l'air de fonctionner etant donner qu'il laisse tout passer....
    toutes les erreurs ne sont pas detectées.....
    etant donner que je ne suis pas encore bien familiarisé avec visual j'aimerai des explications a ce sujet..

    1) comment regler l'externe non resolu avec l'option "DLL multithread"

    2) avec l'option DLL de debogage multithread comment bien compiler.....

    voici le code de vector qui ne compiler pas avec le .cpp

    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
    #ifndef COLLISIONS_H
    #define COLLISIONS_H
     
    #include "constantes.h"
    #include <vector>
    #include <iostream>
     
     
    using std::vector;
     
     
    vector<SDL_Rect> collisions(char*,int,int);								// retourne le vecteur de collision en fonction de l'objet
    vector<SDL_Rect> retourMaison_01(int,int);									// retourne le vecteur de collision de l'objet maison
     
     
    #endif
    compile nikel mais pas sa ---->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    vector<SDL_Rect> collisions(char* _nom ,int _x,int _y){
     
    	vector<SDL_Rect> vecteur;													if(!strcmp("maison_01",_nom))vecteur = retourMaison_01(_x,_y);			
    	return vecteur;															// retour du vecteurs
    }
    vector<SDL_Rect> retourMaison_01(int _x,int _y){
     
    	vector<SDL_Rect> vecteur(2);
    	return vecteur;
    }

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Points : 115
    Points
    115
    Par défaut
    personne n'a de solutions?

  3. #3
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    Est-ce que tu as modifié des options de projet ?

    la classe vecteur fait partie de la STL (standard template librarie) donc à moins que tu n'aies pas linké avec les libs par défaut de VC++, ça ne devrait pas poser problème.. La différence entre "multithread dll" et "multithread deboguage dll" est probablement due a une mauvaise config du projet.

    Au pire poste toutes tes options de compil et de linkage ici..

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Points : 115
    Points
    115
    Par défaut
    bon ok pour la bibliotheque runtime j'ai donc DLL multithread

    editeur de lien-->dependance supplementaire :
    SDL.lib
    SDLmain.lib
    SDL_ttf.lib
    SDL_image.lib
    /NODEFAULTLIB:msvcrt.lib

    le dernier sert a eviter un conflit entre deux bibliotheque (j'ai trouvé sa de internet -_-)

    Systeme---> sous systeme :
    Windows (/SUBSYSTEM:WINDOWS)

    car je devellope un projet mode fenetre et pas console

    voila tout le reste n'est pas changer...
    jai verifier que je possede bien le fichier "vector" dans le dossier de visual il l'a detecte bien puisqu'il compile le .h

    mais je ne comprend pas d'ou peuvent venir les problemes...

  5. #5
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    Tu mets /NODEFAULTLIB donc ton application n'est pas liée avec la lib standard livrée avec Visual studio 2008.. A priori s'il y a besoin de symboles qui sont dans cette librairie c'est normal que ça pose problème au linkage..

    Le conflit c'est parce qu'une des libs SDL contient déjà les symboles de la CRT ? de quelle version ? VC8/vc9 ??

    Essaie de voir s'il n'y a pas une version MAJ de SDL pour VC9..

  6. #6
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 084
    Points : 1 525
    Points
    1 525
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par nightwar Voir le message
    /NODEFAULTLIB:msvcrt.lib

    le dernier sert a eviter un conflit entre deux bibliotheque (j'ai trouvé sa de internet -_-)
    Cette option bien que conseillée est à éviter. J'utilise Visual Studio 2005 et histoire de faire propre j'ai suivis ce conseil et là j'ai eu la surprise d'avoir une palanquée d'erreur de lien.

Discussions similaires

  1. Nettoyage de code sous Visual C# express
    Par ZeBen dans le forum C#
    Réponses: 7
    Dernier message: 22/06/2010, 12h30
  2. BevelBitmapEffect sous visual express 2010
    Par TERRIBLE dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 06/06/2010, 02h29
  3. interface graphique sous visual express 2008
    Par cortex59 dans le forum C++
    Réponses: 5
    Dernier message: 15/01/2010, 12h04
  4. Verification de code sous visual C#
    Par zerobug dans le forum C#
    Réponses: 9
    Dernier message: 20/03/2008, 14h01

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