struct an Thread übergeben



  • Hallo wieder einmal,
    ich komme bei einem Programm nicht weiter. Wenn das hier eher in MFC oder WinApi gehören sollte, möge man mir bitte verzeihen 🙂

    Programm ist also unter VC++ 6.0 geschrieben, für Windows gedacht.

    Ich habe eine Funktion die etwas messen soll, diese soll als Thread ausgeführt werden. Diesem Thread muss ich mehrere Parameter übergeben - doch dadran scheitere ich leider. Einen Int kann ich übergeben (als LPVOID) und dann zurück casten, mit einer Struct weiß ich nicht, wie ich das machen soll.

    struct uebergabe{
    char* dataid;
    int intervall;
    int anzahl;
    }client;
    
    handlethread=CreateThread(Null, 0, (LPTHREAD_START_ROUTINE)&messen, &uebergabe, 0, NULL);
    

    Wie kann ich die struct nun innerhalb des Threads verwenden?

    Dank&Gruß,
    Simon



  • SimonFB schrieb:

    Einen Int kann ich übergeben (als LPVOID) und dann zurück casten, mit einer Struct weiß ich nicht, wie ich das machen soll.

    Gleiches Spiel. Du castest nach (struct uebergabe).

    Ich persönlich würde ja mit typedefs arbeiten, das ständige "struct" tippen nervt und macht den code imho unleserlicher.



  • Danke schonmal! Leider habe ich da immer noch ein Verständnissproblem. Beim int habe ich das so gemacht (auch wenn ich so eine Variable verschwende):

    int neuerint;
    neuerint=*((int*)uebergebenerwert);
    

    Wie sieht das nun konkret für die structure aus? 😞
    Um nach (struct uebergabe) zu casten, müsste diese ja im Thread bekannt sein, oder?



  • SimonFB schrieb:

    Danke schonmal! Leider habe ich da immer noch ein Verständnissproblem. Beim int habe ich das so gemacht (auch wenn ich so eine Variable verschwende):

    int neuerint;
    neuerint=*((int*)uebergebenerwert);
    

    Wie sieht das nun konkret für die structure aus? 😞

    Ganz konkret:

    struct uebergabe neu;
    neu = *( (struct uebergabe *)uebergebenerwert);
    

    SimonFB schrieb:

    Um nach (struct uebergabe) zu casten, müsste diese ja im Thread bekannt sein, oder?

    Ja, der Typ struct uebergabe muss bekannt sein.



  • Recht herzlichen Dank für deine Ausführungen, mit global definierter structure funktioniert das dann auch 🙂
    Im Internet findet sich zu dem Thema leider auch nicht soviel, vllt wäre das auch mal ein Fall für die FAQ?

    Gruß aus Berlin,
    Simon


Anmelden zum Antworten