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

C++ Discussion :

erreur 'TRUE' undeclared sur dev c++


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut erreur 'TRUE' undeclared sur dev c++
    Bonjour à tous. J'apprends à utiliser Fmod mais je bloque sur un probléme. Les types booléens ne sont pas reconnus apparemment: Pour le programme suivant:
    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
     
    #include <cstdlib>
    #include <iostream>
    #include <fmod.h>
    using namespace std;
     
    int main(int argc, char *argv[])
    { 
     
      FSOUND_Init(44100, 32, 0);
      FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit, TRUE);
      FSOUND_SAMPLE *tir = NULL;
      tir = FSOUND_Sample_Load(FSOUND_FREE, "coca.wav", 0, 0, 0);
      FSOUND_PlaySound(FSOUND_FREE, tir);
      system("pause");
      FSOUND_Sample_Free(tir);
      FSOUND_Close();	
      return 0;
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    J'obtient l'erreur "'TRUE' undeclared".
    Si je remplace TRUE par 1, ca ne fonctionne pas non plus et l'on m'indique:
    "cannot convert `FSOUND_DSPUNIT*(*)()' to `FSOUND_DSPUNIT*' for argument `1' to `void FSOUND_DSP_SetActive(FSOUND_DSPUNIT*, signed char)'"
    Comment faire comprendre au compilateur que ça existe, les booleens?
    Merci à l'avance.

  2. #2
    Membre éclairé Avatar de jehrikhan
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    c'est peut etre stupide comme idée.. surement meme, mais en mettant true en minuscule? Je me souviens d'un compilo qui le prenait que comme ça

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Les booléens en C++ ce sont true et false, pas TRUE et FALSE.
    Il parait évident néanmoins que le problème ne vient pas de là.

    Surtout que fmod est une bibliothèque C, et que C90 n'a pas de booléens...
    (Y'a bien sûr aussi une API C++ (enfin, "C with classes") mais là c'est celle de C que tu utilises)

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut
    avec des minuscules, ca ne marche pas non plus. Le compilateur les remplace par des 1 et des 0 apparemment. Sinon j'ai en fait commencé à programmer en C. Les mêmes problémes sont apparus. C'est bête de bloquer sur un truc comme ca.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    TRUE et FALSE, ainsi que le typedef BOOL, sont déclarés dans <windows.h>.
    Peut-être que la version Windows de fmod compte sur toi pour utiliser ceux-là...
    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.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut
    si j'inclue window.h, et que je met "TRUE", l'erreur suivante apparait de nouveau:
    "cannot convert `FSOUND_DSPUNIT*(*)()' to `FSOUND_DSPUNIT*' for argument `1' to `void FSOUND_DSP_SetActive(FSOUND_DSPUNIT*, signed char)' "
    Je suis perdu.
    Et si je met "0", le message est EXACTEMENT le même. Avec le `1'. J'enrage.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut
    L'histoire de convertion dont parle le message d'erreur n'a-t-elle pas de rapport avec une notation de pointeur? Je ne suis pas vraiment calé en pointeur...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 61
    Par défaut
    Retourne lire les cours de base de developpement puis tu lira les cours de base de developpement en c++ puis te reviendrais poser ton probleme.
    Merci.

    Pardon j'ai peut etre été un peu dur la. true et false sont les types boolean primitif de c++. Alors que TRUE et FALSE sont souvent des macro qui sont remplacé par 1 ou 0.
    Tu n'as donc plus d'erreur de compil des que tu as la macro TRUE (ou FALSE) de déclaré dans un de tes .h
    Par contre la tu vois bien que tu as une erreur de cast. En effet tu utilises une fonction qui prend en premier parametre un FSOUND_DSPUNIT* et toi tu lui donne un FSOUND_DSPUNIT*(*)()

    Retourne lire les cours de base de developpement puis tu lira les cours de base de developpement en c++ puis te reviendrais poser ton probleme.
    Merci.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut
    Peut être un peu dur mais au moins j'espére avancer avec ce que tu m'as dis. Je n'ai malheureusement pas de livre sur moi et je suis à Munich. J'ai un stage dans les jeux vidéos qui commence lundi. J'espére me débrouiller d'ici là. Il va donc falloir que je sache utiliser Fmod sans connaître les fondamentaux.

    Peux tu me dire comment résoudre ce probléme d'argument? Je me suis contenté de copier les exemples de la notice de Fmod.

    Merci.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    J'ai trouvé!
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit(), TRUE);
    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.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut
    Je n'ai pas l'équaliser mais au moins ça compil!
    Merci, je peux enfin avancer.

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

Discussions similaires

  1. Erreur avec OpenCV 2.4 sur Dev-C++
    Par ezzahout dans le forum OpenCV
    Réponses: 0
    Dernier message: 22/04/2013, 20h51
  2. Erreur de compilation sur std::string avec Dev C++
    Par dada57 dans le forum Dev-C++
    Réponses: 4
    Dernier message: 20/03/2006, 18h06
  3. [FreePascal] Erreur compilation ou défaut Dev-Pascal ?
    Par molesqualeux dans le forum Free Pascal
    Réponses: 5
    Dernier message: 27/12/2004, 10h00
  4. Erreur Pilote ODBC sur pages ASP
    Par zouritte dans le forum ASP
    Réponses: 2
    Dernier message: 12/12/2004, 13h42
  5. Erreur ORA-01036 sur un XMLGRAM
    Par sch dans le forum XMLRAD
    Réponses: 5
    Dernier message: 07/09/2004, 14h56

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