CreateThread und classen- referenz als parameter? geht das?
-
hi, mal so ne frage!
kann ich an die CreateThread API funct. nen klassen-pointer übergeben?
ich bin mir unsicher, da die CreateThread doch ne "C" lib- funktion ist.
Hier die Zeile:CreateThread(NULL ,0,acceptThreadRoutine,this,0 ,m_pdwAcceptThreadId );der this- pointer ist die klasse wo der thread erzeugt wird.
thx für jeden tipp
marcello
-
Klar, du kannst CreateThread jeden Zeiger übergeben, da er nur 4Byte groß ist! Im Thread das LPVOID auf den richtigen Typ casten und schon kannst du den Zeiger verwenden (achte aber darauf, dass das Objekt, auf welches der Zeiger zeigt, beim Threaddurchlauf noch nicht gelöscht wurde!)
Gruß,
Kevin
-
Prinzipiell sollte das schon gehen, allerdings solltest du anstelle von CreateThread eine der Funktionen _beginthread oder _beginthreadex verwenden (sonst kann es afaik zu Fehlern mit der C/C++-Runtime-Environment kommen)
-
hmm. was ist denn der unterschied?
ich bin etwas nervös, weil die ganzen "low level" sachen so schlecht dokumentiert sind in vis. stud.
-
Gehirnmann! schrieb:
ich bin etwas nervös, weil die ganzen "low level" sachen so schlecht dokumentiert sind in vis. stud.
Ich glaube nicht.
-
Wenn ich "CreateThread" in Visual Studio in der Suche eingebe bekomme ich genau:
0 (gesprochen Null)
Antworten im Bereich "Win-API" (also alles was nicht MFC, .NET usw. ist).
Aber wenn ich Netz unter "CreateThread" suche gibts 10 millionen infos-- nur eben alle anders und teilweise falsch
-
Also wenn ich in meinem Visual Studio auf CreateThread im "Dynamischen Hilfe"-Fenster (Visual Studio .NET) klicke, komme ich zu dieser Seite hier. Selbiges gilt für _beginthreadex und Konsorten.
Schätze mal wenn Du den Caret in das Wort CreateThread bzw. _beginthreadex packst und F1 (Visual Studio 6) drückst, bekommst Du dieselbe Seite (vorausgesetzt Du hast die MSDN mit installiert).
Also weigere ich mich schlichtweg hinzunehmen das das "schlecht dokumentiert" wäre.
PS:
Wenn ich in der installierten MSDN-Suche "CreateThread" eingebe, bekomme ich 235 Artikel dazu angezeigt (ungefiltert).
-
Gehirnmann! schrieb:
ich bin etwas nervös, weil die ganzen "low level" sachen so schlecht dokumentiert sind in vis. stud.
_beginthreadex ist eine Stufe über CreateThread angesiedelt. Eigentlich ist CreateThread die Low-Level-Funktion.
