Executer Une Ressource en mémoir?

albert0 Messages postés 249 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 9 août 2008 - 24 août 2005 à 01:36
albert0 Messages postés 249 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 9 août 2008 - 24 août 2005 à 12:21
Bonsoir :)



Voila, j'essai de jouer un son ".wav" que j'ai mit dans les ressources, en mémoir



Je travaille sous VS.Net en C, J'ai dont mit mon . WAV en ressource,
j'ai déja reussi, a jouer ce . WAV Mais en le copiant sur le disque
dur..



HRSRC x=FindResource(NULL,MAKEINTRESOURCE(IDR_WAVE1),"WAVE");

HGLOBAL h=LoadResource(NULL,x);

LPVOID memptr=LockResource(h);

DWORD taille=SizeofResource(NULL,x);

HANDLE hfichier;

hfichier=CreateFile("test.wav",GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);

WriteFile(hfichier,memptr,taille,&ecrits,NULL);

CloseHandle(hfichier);

PlaySound("test.wav", GetModuleHandle(NULL),SND_NOSTOP|SND_SYNC);



mais comment faire pour DIRECTEMENT le joué en memoir?





d'avance merci!

3 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
24 août 2005 à 02:51
Salut,

Tu peux le jouer directement avec PlaySound() car cette fonction peut lire une ressource. Tu fais ceci:

PlaySound(MAKEINTRESOURCE (IDR_WAVE1), 0, SND_RESOURCE | SND_NODEFAULT);

Donc seule PlaySound() suffit.
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
24 août 2005 à 03:02
J'aimerai préciser aussi qu'on peut jouer le son directement d'une zone mémoire. Pour cela on fait:

PlaySound((LPCSTR)memptr, 0, SND_MEMORY | SND_NODEFAULT);

memptr pointe vers la zone mémoire contenant le WAV à jouer.
0
albert0 Messages postés 249 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 9 août 2008
24 août 2005 à 12:21
Hmm interressant, merci !!!
0
Rejoignez-nous