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

Windows Discussion :

Problème d'execution c++ sous windows


Sujet :

Windows

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 31
    Points : 15
    Points
    15
    Par défaut Problème d'execution c++ sous windows
    Bonjour à tous,

    J'écrit présentement un programme, vous vous en doutiez surment , et il compile sans erreur, mais lorsque je l'execute windows me donne une erreure. (Celle où il y a la fenêtre avec les options "Envoyer le rapport" ou "Ne pas envoyer le rapport") L'erreur se produit lorsque je tente de faire executé mon programme en pleine écran.

    Et j'ai un autre petit problème qui est peut-être causer par la même chose, si je décide d'avoir mon programme fenêtré les grandeurs de la fenêtre reste toujours en 640x480.

    Merci,

    Maxetime

    Voici mes code sources
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const char *resolution; //variable de la resolution
    
    	// créer le buffer pour copier la chaîne
    	size_t size = oss.size() + 1;
    	char * buffer = new char[ size ];
    	// copier la chaîne
    	strncpy( buffer, oss.c_str(), size );
    	// mettre la chaine dans resolution
    	resolution = buffer;	
    	// libérer la mémoire
    	delete [] buffer;
    Tu ne crois pas qu'il y a un petit problème ici?
    Tu devrais utiliser des strings jusqu'au bout au lieu de faire des manipulations hasardeuses...

    PS: strncpy() ne met pas automatiquement un caractère nul quand la chaîne est tronquée (même si ici, ce n'est pas supposé arriver).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 31
    Points : 15
    Points
    15
    Par défaut
    Salut,

    le problème c'est que je ne peux pas utiliser des string jusqu'au bout puisque la fonction de glut prend un résolution en char. Deuxième ce bout de code je l'ai prit dans la section glut de dévellopez.net.

    Merci tout de même de la réponse et si tu trouve un moyen n'hésite pas,

    Maxetime

  4. #4
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Si c'est dans les tutoriels il y a un gros problème !

    Tu aurais le lien précis d'ou tu as tiré les sources sur developpez.com ?
    Car je ne le trouve pas dans les tutoriels.

    Bien entendu enlever tout le code cité par Médinoc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // placer à la place de 
    const char *resolution; -> std::string oss;
    ...
    // Appel
    glutGameModeString(oss.c_str());

    ps : je ne vois pas le problème avec le const char* car justement c_str() renvoie un const char*

    Référence FAQ

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 31
    Points : 15
    Points
    15
    Par défaut
    SAlut,

    Voila le lien de l'endroit d'où j'ai pris le code http://c.developpez.com/faq/cpp/?pag...TRINGS_to_char

    et merci pour la réponse je vais essayer cela ce soir car la je suis un petit peu pressé,

    Maxetime

  6. #6
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Le code que tu as trouvé est correct !

    Sauf que lorsque tu l'as repris tu as fait une erreur, car tu libères la mémoire de buffer alors que tu vas l'utiliser via le pointeur révolution qui pointe le même espace mémoire que buffer !

    N’indique pas une copie de la chaîne, juste que resolution et buffer pointe le même espace mémoire !

Discussions similaires

  1. Problème (programme de ping sous Windows)
    Par Tomystique dans le forum Débuter
    Réponses: 11
    Dernier message: 14/03/2008, 13h02
  2. Problème de DLL WMI sous Windows 2000 pro
    Par manwax dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 11/03/2008, 15h32
  3. problème fin de string sous windows 98
    Par LAPLACE dans le forum Windows
    Réponses: 1
    Dernier message: 07/03/2006, 11h09
  4. Problème de mon appli sous windows 2000
    Par chourmo dans le forum Langage
    Réponses: 2
    Dernier message: 17/02/2006, 12h03
  5. problème d'installation module sous windows
    Par Ickou dans le forum Modules
    Réponses: 2
    Dernier message: 21/10/2005, 16h32

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