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 Funktionsformat

    mt_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. ]


Anmelden zum Antworten