Problem bei AfxBeginThread
-
Hello Zusammen,
Habe ich wieder Problem bei AfxBeginThread getroffen.
Der Compeiler zeigt die Fehleranmeldung:
Error C2665: 'AfxBeginThread':Durch keine der 2 Überladungen kann Parameter 1 von Typ 'unsigned int (void*)' konvertiert werden!
Ich weiss nicht wie kann dass Problem klappen.
-
Indem Du einen korrekten Zeiger auf die entsprechende Funktion übergibst. Es kann keine "nicht-statische" member Funktion einer Klasse sein (was ich bei Deinem Versuch vermute).
Zeige mal Code.
-
ich habe schon fuer den Funktion als static definiert....
Und wie kann ich weiter machen...
-
Zeig doch mal bitte ein Stück Code!
Deine Signatur der Funktion stimmt nicht.
-
void CM59::doInvert() { AfxBeginThread(run,this); } UINT CM59::run(LPVOID p) { CM59* me=(CM59*)p; me->run(); return 0; } void CM59::run() { int m=1; while (m==1) { int n=1; } }Und habe ich schon UINT CM59::run(LPVOID p)als Static schon vordefiniert...
Danke
-
Wenn run wirklich static ist funktioniert es. Ichhabe das Code Schnippsel mal so umgebaut in ein Testprojekt und es geht:
class CM59 { void doInvert() { AfxBeginThread(run,this); } static UINT run(LPVOID p) { CM59* me=(CM59*)p; me->run(); return 0; } void run() { int m=1; while (m==1) { int n=1; } } };
-
ich habe auch bei Test programm wirklich funkioniert.
ich mache zur zeit erweiterung für einen Messprogramm.
wenn ich mit solche Code dazu gepackt,dann kommt die Fehlermeldung....Ich weiss nicht,eigentlich muss es gehen..
Finde ich nur komisch..
-
Zeig mir mal Deine Klassen Deklaration!