Cześć, mój problem wygląda następująco. Od razu powiem, że przeczesałem całe to forum, jak i inne, lecz nie znalazłem odpowiedzi .
Tworzę program w C++, w którym będzie odgrywany dźwięk z pliku. wav. Moje IDE: Code::Blocks, kompilator MinGW, GCC od Stonemana. Niestety przy kompilowaniu programu GCC informuje, że:
undefined reference to `PlaySoundA@12'|
Dlatego dodałem plik dźwiękowy do lokalizacji z plikiem .exe (bo wcześniej zapomniałem). Nic to jednak nie dało. Z tego, co wyczytałem, funkcja ta wymaga biblioteki winmm.lib. Wobec tego dodałem #include <winmm.lib> , lecz nic to nie dało. Zacząłem więc szukać po plikach CodeBlocksa takiej biblioteki, lecz nie znalazłem. Być może gdzieś jest, ale najprawdopodobniej jej nie ma, dlatego nie działa.
Mniej więcej wiem, jak bibliotekę w CodeBlocksie do GCC dodać, tylko nie wiem, skąd ją mogę pobrać. Na microsoftowym MDCN nie znalazłem takiej możliwości (strona już jest przestarzała i zastąpiona nową). Czy ktoś wie, gdzie można bezpiecznie się w takową bibliotekę zaopatrzyć? I czy to wystarczy, aby funkcja PlaySound zadziałała? Dodaję poniżej mój kod:
#include <iostream>
#include <windows.h>
#include <winbase.h>
#include <cstdio>
using namespace std;
int choice;
int main()
{
cout << "------Słowak Bell v1.0------" << endl;
cout << "by TDomek" << endl;
cout << "________________________" << endl;
cout << "Aktualny status: /Działa w tle/" << endl;
cout << "Aby działał w tle, musi być cały czas włączony" << endl;
cout << "(zminimalizuj na pasek zadań)." << endl;
cout << "Aby zakończyć działanie programu," << endl;
cout << "wprowadź cyfrę 0 i zatwierdź ENTERem: ";
while (choice!=0)
{
SYSTEMTIME st;
GetSystemTime(&st);
if ((st.wHour == 7) && (st.wMinute == 35))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
Sleep(58000);
}
if ((st.wHour == 8) && (st.wMinute == 20) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
if ((st.wHour == 8) && (st.wMinute == 30) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
if ((st.wHour == 9) && (st.wMinute == 15) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
if ((st.wHour == 9) && (st.wMinute == 25) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
if ((st.wHour == 10) && (st.wMinute == 10) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
if ((st.wHour == 10) && (st.wMinute == 20) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
if ((st.wHour == 11) && (st.wMinute == 5) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
if ((st.wHour == 11) && (st.wMinute == 25) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
if ((st.wHour == 12) && (st.wMinute == 10) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
if ((st.wHour == 12) && (st.wMinute == 30) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
if ((st.wHour == 13) && (st.wMinute == 15) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
if ((st.wHour == 13) && (st.wMinute == 25) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
if ((st.wHour == 14) && (st.wMinute == 10) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
if ((st.wHour == 14) && (st.wMinute == 20) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
if ((st.wHour == 15) && (st.wMinute == 5) && (st.wSecond == 1))
{
PlaySound(TEXT("schoolbell.wav"), NULL, SND_FILENAME);
}
cin >> choice;
}
if(choice==0)
{
getchar(); getchar();
}
return 0;
}
Z góry wielkie dzięki za porady