PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sound abspielen



funky-destroy
06.12.2008, 17:03
hay!
bei mir klappt das mit dem Sound abspielen immer nicht!

PlaySound("Soundfile.wav", NULL, SND_FILENAME | SND_ASYNC);


Doch immer kommt dann beim builden die fehlermeldung
"undefined reference to `_PlaySoundA@12'"

woran liegt das??


mfg funky

Schlurmann
06.12.2008, 18:06
Du musst die zugehörige Library linken. Dazu schaust du in die MSDN und suchst PlaySound (http://msdn.microsoft.com/en-us/library/ms712879.aspx). Ganz unten steht,
Header: Declared in Mmsystem.h; include Windows.h.
Library: Use Winmm.lib.

Also addest du in deinem Code folgendes:



#include <Windows.h>

#pragma comment(lib, "Winmm.lib")

funky-destroy
06.12.2008, 18:21
hay! danke erstmal für die antwort aber es klappt immernoch nicht so recht

"undefined reference to `_PlaySoundA@12"


hier mal mein code


#include <Windows.h>

#pragma comment(lib, "Winmm.lib")


int main()
{


PlaySound("sound.wav", NULL, SND_FILENAME | SND_ASYNC);

}

Schlurmann
06.12.2008, 19:01
Hm ich bin von VC++ ausgegangen. Welche IDE benutzt du? In DevC++ heißen die Libs nämlich etwas anders.

Edit: Probier mal



#pragma comment(lib, "libwinmm.a")


Btw., die main hat den Rückgabetyp int, und sollte demnach auch ein int returnen. ;)

blackberry
10.12.2008, 19:23
#pragma comment(lib, "libwinmm.a")


Dev-C++ benutzt Mingw32.
Der Standard schreibt für pragma keine genauen Regeln vor -> implementierungsabhängig (!)
Meines Wissens funktioniert pragma comment bei MingW32 nicht.

-[RiDER]-
11.12.2008, 21:34
Hi :D

Btw., die main hat den Rückgabetyp int, und sollte demnach auch ein int returnen. ;)
Nicht mehr nötig, vielleicht reicht Dir ein Blick auf das C99-Beispiel in http://de.wikipedia.org/wiki/C99#Beispiele_f.C3.BCr_den_Unterschied_zwischen_ve rschiedenen_Fassungen_der_Sprache_C

GreetZ RiDER :D :D :D

DeCeN
16.12.2008, 15:29
hi,
also für dev c++:
ihr macht ein projekt auf etc....
dann geht ihr oben in der Leiste auf Projekt,
dann auf Project Obtions und
dann auf den reiter Parameter
da tragt ihr dann bei Linkers folgendes unten einfach ein:
"-lwinmm" (ohne Anführungszeichen) :P


#include <windows.h>
#include <stdlib.h>

using namespace std;

int main()
{
PlaySound("c:/output.wav", NULL, SND_FILENAME);

system("PAUSE");
return 0;
}

Der Code war von euch glaub an sich richtig nur ohne pragma;)
der pfad kann auch statt "/" auch mit "\\" geschrieben werden. also ned verwirren lassen.
So müsste es klappen!

Noch ne andere Frage. Des is ja eigentlich nur aufrufen von der wav datei extern
-> Meine Frage kann ich die .wav auch in des Programm einbinden?
-> Wenn ja wie?

MfG
DeCeN