ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
707
707
EMPFEHLEN
-
Hallo,
ich hab ein kleines Problem beim aufrufen von '_beginthread'.
Folgender code zum aufrufen :
Code :1
_beginthread(multitaskingfunc,0,NULL);
ich würde gerne die Funktion als member Funktion deklarieren, allerdings bekomm ich dann immer einen Fehler : 'Konvertierung des Parameters 1 von 'void (void *)' in 'void (__cdecl *)(void *)' nicht möglich'
Funktion :
Code :1 2
public: void multitaskingfunc(void *test);
wenn ich allerdings die Funktion 'multitaskingfunc' als globale Funktion (also einfach wo in meine cpp-Datei) schreib, funktioniert es auf dem ersten Blick so wie es soll.
Allerdings wenn ich zb eine Ausgabe per MessageBox machen will :
, oder ähnliches, bekomm ich jedesmal ein Prgrammfehler (was von wegen hWnd ungültig)...Code :1 2
HWND hWnd; MessageBox(hWnd,"text","text..",MB_OK);
Was mach ich falsch ?
-
Wenn du eine Klassenmethode als Threadfunktion verwenden willst, musst du sie als "static" deklarieren:
Code :1 2
public: static void multitaskingfunc(void *test);
Bei deiner Messageboxausgabe muss du natürlich der Variable "hWnd" erst einen gültigen Fensterhandle zuweisen, bevor du sie an die Messagebox-Funktion übergibst."The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
Für solche Geschichten ist dann der void*-Parameter gedacht. Da kannst du ein Struct oder einen Wert übergeben.
Ich habe mir für meine Code-Bibliothek eine Thread-Basis-Klasse erstellt, die dann der statischen Memberfunktion einen Zeiger auf sich selbst übergibt. Der Zeiger wird zurückgecastet und ruft die (virtuelle) Thread-Funktion der Klasse auf. Abgeleitete Klassen müssen nur noch diese Member-Funktion überladen.
-
danke, danke

dass mit den static hat geklappt
und hWnd brauch ich dann ja jetzt auch ned mehr
thx euch beiden
Ähnliche Themen
-
Problem mit _beginthread
Von colt4ever im Forum C/C++Antworten: 11Letzter Beitrag: 31.03.10, 08:17 -
Allegro kennt _beginthread nicht
Von Windhund im Forum C/C++Antworten: 3Letzter Beitrag: 13.05.09, 22:01 -
wie _beginthread, socket abschießen ?
Von cyberds19 im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 31.07.08, 17:25 -
C++: void oder int?
Von Acriss im Forum C/C++Antworten: 2Letzter Beitrag: 23.07.07, 10:51 -
problem mit _beginthread funktion
Von Nasenbrecher im Forum VisualStudio & MFCAntworten: 4Letzter Beitrag: 03.11.05, 19:55





Zitieren
Login






