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 :

Fonctions du mapper Son introuvables


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 116
    Points : 68
    Points
    68
    Par défaut Fonctions du mapper Son introuvables
    Hello

    J'ai un problème avec le mappeur son, et à ce que j'ai vu voir en recherchant sur le forum, le sujet n'est pas souvent abordé...
    Voila, tout simplement, GCC me dit "linker error, je ne trouve pas waveOutOpen, waveOutWrite, waveOutPrepareHeader, je cite :
    testprocessing sound.cpp:28: undefined reference to `waveOutOpen@24'
    testprocessing sound.cpp:35: undefined reference to `waveOutPrepareHeader@12'
    testprocessing sound.cpp:37: undefined reference to `waveOutWrite@12'e
    J'ai bien include <mmsystem.h> et ils sont bien dedans... Et il ne bronche pas (apparemment) pour "waveOutClose" etc...
    D'ailleurs un truc bizarre de plus : dans mmsystem.h, pas un seul #include... J'imagine que c'est normal, mais pourquoi ?

    : Merci à vous

    PS : config = winXP, DevC++, gcc (mingW) 3.4.2

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Citation Envoyé par La MSDN
    Library: Use Winmm.lib
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_waveoutopen.asp

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 116
    Points : 68
    Points
    68
    Par défaut
    Ah oui j'ai oublié de parler de lui :
    - je n'ai pas winmm.lib
    - ça veut dire quoi "use winmm.lib" concrètement ?

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Pour Dev-C++ c'est libwinmm.a (-lwinmm dans les options d'édition de lien).

    Euh... Ben du coup j'ai aussi répondu à ta seconde question

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 116
    Points : 68
    Points
    68
    Par défaut
    waouh merci bocu mon loulou
    cool
    en fait c'est le linker qui dit à mmsystem.h ou aller chercher les fonctions ? Je ne comprend pas ce système de bibliothèque sans headers...

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    en fait c'est le linker qui dit à mmsystem.h ou aller chercher les fonctions ? Je ne comprend pas ce système de bibliothèque sans headers...
    En gros : en incluant mmsystem.h tu dis au compilo que les fonctions existent, et en liant avec libwinmm.a tu fournis à l'éditeur de lien lesdites fonctions. J'ai pas très bien compris ta dernière phrase ; le header c'est justement mmsystem.h non ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 116
    Points : 68
    Points
    68
    Par défaut
    Ouaip c surtout moi qui n'ai pas bien pigé le pourquoi du comment mais là c'est plus clair.
    Le truc c'est que par exemple stdio.h renvoie à des bibliothèques, mais elles elles sont par défaut (ou un truc dans le genre) alors que libwinmm.a il faut la préciser. C'est ça ? Mais pourquoi on doit préciser au linker d'utiliser certaines bibliothèques et pour d'autres ya pas besoin ?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 116
    Points : 68
    Points
    68
    Par défaut
    mimieupe

  9. #9
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    mimieupe
    :

    Mais pourquoi on doit préciser au linker d'utiliser certaines bibliothèques et pour d'autres ya pas besoin ?
    Celles que tu n'as pas besoin de préciser, c'est simplement la bibliothèque standard. On peut facilement comprendre qu'elle soit liée par défaut

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 116
    Points : 68
    Points
    68
    Par défaut
    hmm daccord... mais ça voudrait dire que (par exemple) la fonction Beep de l'API windows fait partie de la bibliothèque standard (puisqu'on n'a juste faire #include <windows.h> ?

    sinon : minieupe = mini-up

  11. #11
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    hmm daccord... mais ça voudrait dire que (par exemple) la fonction Beep de l'API windows fait partie de la bibliothèque standard (puisqu'on n'a juste faire #include <windows.h> ?
    Non, c'est juste que selon les compilos (surtout VC++) certaines bibliothèques relatives à l'OS sont également liées par défaut, comme c'est le cas pour Kernel32.lib qui définit la fonction Beep.

    sinon : minieupe = mini-up
    Ok... Par contre peut-être n'est-ce pas primordial de faire un up à seulement 2h d'intervalle.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 116
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par Loulou24
    hmm daccord... mais ça voudrait dire que (par exemple) la fonction Beep de l'API windows fait partie de la bibliothèque standard (puisqu'on n'a juste faire #include <windows.h> ?
    Non, c'est juste que selon les compilos (surtout VC++) certaines bibliothèques relatives à l'OS sont également liées par défaut, comme c'est le cas pour Kernel32.lib qui définit la fonction Beep.
    ok !
    sinon : minieupe = mini-up
    Ok... Par contre peut-être n'est-ce pas primordial de faire un up à seulement 2h d'intervalle.
    C'est juste.

    Merci pour tout !

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

Discussions similaires

  1. Déterminer une fonction à partir de son tracé
    Par (m)(a)(m)(i)(n)e dans le forum MATLAB
    Réponses: 5
    Dernier message: 24/05/2008, 02h14
  2. fonctions dans une requete introuvable
    Par Krusty22 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/05/2008, 09h22
  3. [OpenOffice][Tableur] Supprimer une fonction sans supprimer son résultat
    Par DranDane dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 19/03/2008, 16h57
  4. [VBA] Executer une fonction en passant son nom en argument
    Par David Guyon dans le forum Access
    Réponses: 4
    Dernier message: 05/10/2005, 19h56
  5. comment tester si une fonction fait bien son travail
    Par access dans le forum Requêtes
    Réponses: 1
    Dernier message: 24/11/2003, 15h46

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