webForumDet fria alternativet

Static class

4 svar · 159 visningar · startad av Ryzzen

RyzzenMedlem sedan mars 2000267 inlägg
#1

Hello

Nu har jag totalt kört fast.

Grejen är den att jag måste använda mig av en static funktion i en klass. Men det skall oxo kunna anropa övriga klassmedlemar.

Krux två är att definationen måste vara " int funk(void *)"
om jag inte har missuppfattat det hela.

Hur katten skall jag få det att gå ihop.

En kort förklaring till det är att jag håller på med tråd programmerings. Med hjälp av SDL's tråd system.

Finns det någon som vet hur jag skall vrida på problemet.

Marcus EMedlem sedan maj 20021 466 inlägg
#2

Skicka this via void*-parametern. Efter det kan du anropa klassen genom att kasta om void* till din klasspekare.

RyzzenMedlem sedan mars 2000267 inlägg
#3

hm... okej

om jag hajade rätt så menade du

MainThread = SDL_CreateThread(Funktion,this);

int Server::Funktion(void *data)
{

    while(data.exit)
data.CheckMessage();

    return (0);

}

men hur tar jag emot pekaren..
för en char pekar är det ju bara att köra

char *text:
text = (char *) data;

Marcus EMedlem sedan maj 20021 466 inlägg
#4

Om klassen heter CServer och variabeln du vill komma åt är exit kan det se ut så här:
((CServer*)data)->exit;

RyzzenMedlem sedan mars 2000267 inlägg
#5

Danke..

Funkar fint.. Om det fanns VR kramar så skulle du få en.

Har funderat på det här problemet ett bra tag.

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)