Hallo,
(VC++5.0, Win-NT4)
Ich soll den Aufruf von CreateThread(…) in einer Klasse ähnlich wie in Java kapseln, dafür habe ich eine abstrakte Funktion run (virtual DWORD run()=0:wink: definiert, die vom Benutzer der Klasse beim ableiten überschrieben werden muss.
Des weiteren habe ich eine Funktion start, in welcher der Thread dann wirklich gestartet werden soll. Hier ergibt sich folgendes Problem:
Beim Aufruf von
if (hThread==NULL){
hThread=CreateThread(NULL, // Security
0, // Stackgröße
(LPTHREAD\_START\_ROUTINE)this-\>run,// Startadresse
NULL, // Parameter
0, // Startoptionen
(LPDWORD)&ThreadID); // ThreadID
}
liefert der Compiler folgenden Fehler:
D:\Uni\sypu\Aufgabe2\BasicThread.cpp(39) : error C2440: 'type cast' : 'ueberladener Funktionstyp' kann nicht in 'unsigned long (\_\_stdcall \*)(void \*)' konvertiert werden
Keine Funktion mit diesem Namen im Gueltigkeitsbereich stimmt mit dem Zieltyp ueberein
Wie muss ich also die ThreadFunktion übergeben, wenn diese eine Memberfunktion ist?
Vielen Dank,
Max
p.s.: Achja, ich bin blutiger Cpp Anfänger, wäre nett, wenn evtl. Antwortende dies berücksichtigen könnten