Mherere Threads aufrufen ?



  • Hallo,

    was meinst Du mit

    server ist eine einfache
    

    Klasse oder ??

    steht dieses dann in der klasse server ?

    void server::StartThread()
    {
     if(thread == NULL)
     {
      thread = AfxBeginThread(StartLogfile, this);
     }
     else
     {
      thread.ResumeThread();
     }
    }
    
    void server::Stopthread()
    {
     if(thread != NULL)
     {
      thread.Suspend();
     }
    }
    

    Gruß
    und Danke
    andy_mann



  • Ja zu beiden Fragen



  • Ich krige das Ding nicht zum laufen...

    Nur fehler..

    wo muß deiner meinung nach die Globale Funktion

    UINT StartLogfile(LPVOID pParam) 
    { 
        Server * pServ = (Server*) pParam; 
        ppServ->derDialog->threadStart(ppServ->Id); 
    
        return 0;     
    }
    

    Gruß
    andy_mann



  • Hallo,

    kann mir vieleicht jemand sagen warum ich folgenden fehler bekomme ??

    error C2065: 'IDD_LIZENZEN' : nichtdeklarierter Bezeichner

    IDD_LIZENZEN ist mein Dialog.

    Wenn ich oben aufgeführten Code raus lasse, ist alles in ordnung.

    Gruß
    andy_mann



  • Hallo,

    andy_mann schrieb:

    error C2065: 'IDD_LIZENZEN' : nichtdeklarierter Bezeichner

    du hast #include "resource.h" vergessen

    Grüße Rapha



  • Hallo Rapha,

    vielen Dank, das hat sehr geholfen..

    jetzt habe ich allerdings nochmal einen Fehler..

    error C2143: Syntaxfehler : Fehlendes ';' vor '*'
    error C2501: 'CLizenzenDialog' : Fehlende Speicherklasse oder Typbezeichner

    #include "LizenzenDialog.h" habe ich eingebracht.

    Finde den Fehler nicht...

    Gruß
    andy_mann



  • Das liegt normalerweise an der nicht includierten "LizenzenDialog.h" (was bei dir ja nicht der Fall ist).
    Dann kann es sein, dass die Klasse CLizenzenDialog nicht richtig deklariert wurde (vielleicht hast du das ; nach "class CLizenzdialog {...}" vergessen oder in der Klasse eine Klammer zuviel geschrieben)

    Poste mal etwas mehr Code/Fehlermeldungen.

    Grüße Rapha



  • Hallo Rapha,

    ich danke Dir,

    wie es aussah, hat
    #include "afxtempl.h"
    gefehlt.

    Jetzt teste ich gerade, läuft allerdings noch nicht so wie ich will.

    Gruß
    andy_mann



  • so, jetzt glaube ich dann an geister....... 😞

    nach dem ich oben den Artikel geschrieben hatte, einen Satz kopiert hatte, kam der selber fehler wieder...

    error C2143: Syntaxfehler : Fehlendes ';' vor '*'
    error C2501: 'CLizenzenDialog' : Fehlende Speicherklasse oder Typbezeichner
    error C2501: 'm_cLizenzenDialog' : Fehlende Speicherklasse oder Typbezeichner

    ich habe auch schon nach gesehen, ob ich die include anweisung ausversehen verschoben hatte, war aber noch da.

    So und nun ??
    Ich kann auch die einzelnen Dateien Kompilieren, keine Fehler.
    Beim erstellen fehler....

    Mensch, gibt es denn keine Lösung für mein Problem oder muß ich mir erst 1000000000000 Bücher durchlesen um anschließend mit 10000 Jahren einen Pobligen Code zu schreiben ??????? 😡

    Gruß
    andy_mann



  • 😃
    Das #include "LizenzenDialog.h" MUSS in die die Headerdatei, in der die Klasse deklariert wird, die 'm_cLizenzenDialog' als Membervariable hat.
    Bist du sicher, dass das der Fall ist?

    Grüße Rapha



  • Vielleicht bin ich auch Blind.....

    // ServerThread.h: Schnittstelle für die Klasse ServerThread.
    //
    //////////////////////////////////////////////////////////////////////
    
    #if !defined(AFX_SERVERTHREAD_H__EA24D7BF_3663_4309_AF14_6BCE869F73A1__INCLUDED_)
    #define AFX_SERVERTHREAD_H__EA24D7BF_3663_4309_AF14_6BCE869F73A1__INCLUDED_
    
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
    
    #include "resource.h"
    #include "afxtempl.h"
    #include "LizenzenDialog.h"
    
    class ServerThread  
    {
    public:
    	int id;
    
    	CLizenzenDialog* m_cLizenzenDialog; 
    
    	void StartThread(); 
    	void StopThread();
    
    	ServerThread();
    	virtual ~ServerThread();
    
    private:
    	CWinThread* thread;
    
    };
    
    #endif // !defined(AFX_SERVERTHREAD_H__EA24D7BF_3663_4309_AF14_6BCE869F73A1__INCLUDED_)
    

    Gruß und vielen Dank
    andy_mann



  • Ist die Lizenzdialogklasse ok (d.h. kannst du den Dialog starten)?
    Sonst könntest du noch versuchen ein

    class CLizenzenDialog;
    

    vor die deklaration der Klasse zu schreiben.

    Grüße Rapha



  • Hallo Rapha,

    vielen Dank für dein Bemühen.

    Mit dem eintrag von

    class CLizenzenDialog;
    

    funzt es wieder......

    Gibt es auch eine erklärung wieso 😕

    Gruß
    andy_mann


Anmelden zum Antworten