CreateThread will nich *noobi*
-
Hallo !
Ich will mehrere Threads nebeneinander aus einer ATL-COM-DLL heraus laufen lassen...
Leider will ich einen Thread über die Methode eines Objektarrays (mit deque) laufen lassen was irgendwie nicht klappen will :
Jobs.cpp(101) : error C2664: 'CreateThread' : Konvertierung des Parameters 3 von 'unsigned long' in 'unsigned long (__stdcall *)(void *)' nicht moeglich
Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformatmt_hThread[mt_Count] = CreateThread( NULL, 0, bigBuffer[bb_Current].Download(), (LPVOID)mt_Count, 0, &mt_dwThread[mt_Count] );
Die Download() Methode hab ich folgendermaßen implementiert:
DWORD WINAPI File::Download(){ // unwichtig (?) }
bigBuffer ist übrigens
deque<File> bigBuffer;
(ich glaube dadurch kann ich nicht den Code von den Tutorials einfach anpassen...
Was muss ich beachten/aendern sodass ich meine überdreiecken Methode doch noch ausgeführt wird ?Vielen Dank
[ Dieser Beitrag wurde am 23.01.2003 um 22:11 Uhr von BodoWiswe editiert. ]
-
Was ist der Unterschied zwischen einem Funktionsaufruf und einem Funktionszeiger?
-
tja...
Wenn ich es so mache :mt_hThread[mt_Count] = CreateThread( NULL, 0, bigBuffer[bb_Current].Download, (LPVOID)mt_Count, 0, &mt_dwThread[mt_Count] );
Krieg ich den gleichen Fehler...
-
static DWORD WINAPI File::Download(PVOID pParam){ // unwichtig (?) }
-
Siehe ATL::CThreadPool
deklariert in atlutil.h
-
okok static klappt wohl irgendwie doch vielen danke nochmal an alle !
[ Dieser Beitrag wurde am 24.01.2003 um 23:39 Uhr von BodoWiswe editiert. ][ Dieser Beitrag wurde am 27.01.2003 um 16:13 Uhr von BodoWiswe editiert. ]