Threads mit MSVC



  • Hallo ich möchte gern mit Threads arbeiten.
    Da gibt es diese wunderschöne function "_beginthread()".
    Allerdings hab ich damit einige Schwierigkeiten!!

    1.) Was muss ich alles in meinen Projekteinstellungen machen, damit ich diese function nutzen kann? Ich habe den MSVC++ 6.0 ! Ich hab die Headerdatei "process.h" eingebunden, habe die Library "LIBCMT.LIB" unter der Registerkarte "Linker" hinzugefügt, und unter "Debug" den Argumentaufruf 'CL /MT /D "_X86_"' eingefügt.

    2.) Wenn er die Funktion findet, bekom ich folgende Fehlermeldung:

    D:\MyProjects\VC++\Bomberman OhneDX\Spladdy.cpp(2807) : error C2664: '_beginthread' : Konvertierung des Parameters 1 von 'int (void)' in 'void (__cdecl *)(void *)' nicht moeglich
    Keine Funktion mit diesem Namen im Gueltigkeitsbereich stimmt mit dem Zieltyp ueberein

    . Wie muss ich meine Funktion anlegen, damit ich diese dort benutzen kann? Kann ich dort auch eine Funktion einer Klasse übergeben?



  • Ne du kannst keine Funktion einer Klasse dort übergeben. Ich glaube aber, dass du eine sttische methode übergeben kannst falls du klassen verwenden willst.

    Die funktion muss so aussehen:

    int function(void*);

    Zu beachten des void* kannst auch LPVOID schrieben.



  • Hallo, also ich arbeite mit CreateThread(..): Die Einstigsfunktion habe ich so angelegt (global):

    DWORD WINAPI NotificationProc( LPVOID lpParameter )
    {
        <EinObject>* var = (<EinObject>*)lpParameter;  //übergebenen Parameter auf entsprechenden Typ casten
        //mach was...!
    
        return returnValue;
    }
    

    Gruß mathi

    [ Dieser Beitrag wurde am 29.01.2003 um 14:04 Uhr von mathi editiert. ]



  • guck mal in die faq


Anmelden zum Antworten