Mam taka klase do obslugi radia internetowego:
class NRadio
{
public:
NRadio(void)
{
BASS_Init(1,44100,0,0,NULL);
}
String status; //status polaczenia
String tytul; //biezacy tytul utworu
String url; //url stacji do otworzenia
DWORD channel; //strumien odtwarzania
bool polacz(void)
{ channel=BASS_StreamCreateURL(url.c_str(),0,BASS_STREAM_META,StatusProc,0); //dlaczego tutaj blad??
BASS_ChannelPlay(channel,FALSE);
return true;
}
private:
void CALLBACK StatusProc(void *buffer,DWORD length,DWORD user)
{
//.........................
}
};
Problem jest nastepujacy: kiedy probuje kompilowac ten kod, otrzymuje blad, ze parametr StatusProc (czyli funkcja CALLBACK) ma nieodpowiedni typ i nie mozna dokonac konwersji. Natomiast jezeli umieszcze ten kod poza klasa, wszystko dziala.
Jak sobie z tym poradzic?
Tak samo jest, kiedy probuje uruchomic nowy watek wewnatrz klasy - jezeli funkcja obslugi watku oraz funkcja tworzaca watek sa wewnatrz klasy, dostaje komunikat o bledzie. Co mozna zrobic?