PlaySound et ressource

Signaler
Messages postés
868
Date d'inscription
dimanche 26 décembre 2004
Statut
Membre
Dernière intervention
26 février 2008
-
Messages postés
868
Date d'inscription
dimanche 26 décembre 2004
Statut
Membre
Dernière intervention
26 février 2008
-
Bonjour,
Je suis débutant en C++ et j'aimerais savoir comment fonctionne la fonction PlaySound pour avoir une zique de fond.
J'ai trouvé ça :

<LI>PlaySound( MAKEINTRESOURCE(ID_DE_MON_SON), ghMonHandleDeResources, SND_ASYNC | SND_RESOURCE );</LI>
Hors je ne connais pas la syntaxe qu'il faut que je mette dans la ressource.
De plus, il ne reconnait pas SND_ASYNC et SND_RESOURCE...
Faut-il une librairie particulière pour PlaySound ?

Si vous avez un exemple sous la main, pouvez-vous me le mettre ? J'ai cherché sur Google mais j'ai rien trouvé.

Voilà, merci beaucoup par avance.
@++

10 réponses

Messages postés
868
Date d'inscription
dimanche 26 décembre 2004
Statut
Membre
Dernière intervention
26 février 2008
1
J'ai oublié de préciser que je travaille sous Dev C++.
@++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
C'est sur MSDN qu'il faut regarder.
sndPlaySound() et en bas de page tu verras header et lib indiqués.

ciao...
BruNews, MVP VC++
Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

il faut inclure mmsystem.h et lier avec winmm sinon je vois pas...


mayonaise tournera, bientôt, très bientôt...
Messages postés
868
Date d'inscription
dimanche 26 décembre 2004
Statut
Membre
Dernière intervention
26 février 2008
1
Je vais voir ça...
@++
Messages postés
154
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
2 octobre 2009
1
Dans le fichier de resource :



IDR_MONWAVE WAVE DISCARDABLE "C:\MonFichier.wav"



Pour le lire :



PlaySound(MAKEINTRESOURCE(IDR_MONWAVE,GetModuleHandle(NULL),Flags)



Voir MSDN pour les valeurs que peut prendre Flags, mais il n'y a pas que SND_ASYNC et SND_RESOURCE



Pour arrêter un son qui boucle (SND_ASYNC et SND_LOOP)



PlaySound(NULL,NULL,NULL,NULL)



Je viens d'essayer sous DevCpp, ça marche.
Messages postés
868
Date d'inscription
dimanche 26 décembre 2004
Statut
Membre
Dernière intervention
26 février 2008
1
Ok merci beaucoup !
@++
Messages postés
868
Date d'inscription
dimanche 26 décembre 2004
Statut
Membre
Dernière intervention
26 février 2008
1
Donc :
J'ai rajouté : IDR_MONWAVE WAVE DISCARDABLE "C:\son.wav"
dans le fichier de ressource et
PlaySound(MAKEINTRESOURCE(IDR_MONWAVE),GetModuleHandle(NULL),SND_ASYNC);
dans mon code avec #include <mmsystem.h>.


Puis, j'ai rajouté #define IDR_MONWAVE 102
Mais c'est bizarre, il ne me compile rien du tout.
A la compilation, il me donne :
Total errors : 0
Size of output file : 0 bytes.
Savez-vous d'où vient mon erreur ? Ai-je rajouter quelque chose en trop ou oublier quelque chose ?

@++
Messages postés
868
Date d'inscription
dimanche 26 décembre 2004
Statut
Membre
Dernière intervention
26 février 2008
1
J'ai changé les includes :
#include "mmsystem.h"
#pragma comment( lib, "winmm.lib" )
puis
PlaySound(MAKEINTRESOURCE(ID_SON), GetModuleHandle(NULL), SND_ASYNC|SND_LOOP);

ID_SON WAVE DISCARDABLE "C:\son.wav" dans le fichier ressource mais rien n'y fait, ça marche pas.
Connaissez-vous l'équivalent de winmm.lib avec Dev C++ ?

@++
Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

Le pragma est ignoré par DevC++. Par contre tu peux rajouter -lwinmm aux options du linker
Messages postés
868
Date d'inscription
dimanche 26 décembre 2004
Statut
Membre
Dernière intervention
26 février 2008
1
Ah ! D'accord ! Je vais voir ça...