Timer in mehreren dateien



  • Hallo zusammen!

    Ich habe versucht, einen Timer in mein Win32-Programm einzubauen und habe nun drei Dateien:

    main.cpp

    Class class1;

    SetTimer(NULL, 0, 1000,(TIMERPROC) &Class::myTimer);
    

    header.hpp

    void CALLBACK myTimer(HWND hwnd, UINT uMsg, UINT timerId, DWORD dwTime);
    

    functions.cpp

    void CALLBACK myTimer(HWND hwnd, UINT uMsg, UINT timerId, DWORD dwTime)
    {
        //auszuführender Code
    }
    

    Nun erhalte ich jedoch folgende Fehlermeldung beim kompilieren:

    undefined reference to `Class::myTimer(HWND__*, unsigned int, unsigned int, unsigned long)
    Wenn ich alles in einer Datei habe, funktioniert das einwandfrei, so jedoch nicht.
    Wie kann ich die Referenz am Schluss der 'SetTimer'-Funktion nun an den Timer übergeben?



  • Der SetTimer-Aufruf ist falsch. Du kannst keine Member Funktionen übergeben, das funktioniert nur mit freien Funktionen oder statischen Member Funktionen.


  • Mod

    Unabhängig davon, ob der Code falsch oder richtig ist: Die Funktion myTimer ist nicht Teil der Klasse Class. Das ist auch, was die Fehlermeldung besagt. Das darf aber auch nicht funktionieren, wenn du den Code in nur einer Datei hast.

    Da das Beispiel ziemlich wirr und unvollständig ist (Wo ist diese Klasse Class? Was soll class1 sein?), kann man nur raten, dass du vermutlich beim Verteilen auf mehrere Dateien etwas gekürzt hast, was nicht hätte gekürzt werden dürfen, oder das du etwas hinzu gefügt hast, das nicht hätte hinzu gefügt werden sollen (zum Beispiel dieses geheimnisvolle Class)



  • Richtig ist also:

    SetTimer(NULL, 0, 1000, &myTimer);
    


  • @MatthewD01

    @MatthewD01gotporn sagte in Timer in mehreren dateien: xnxx

    Hallo zusammen!

    Ich habe versucht, einen Timer in mein Win32-Programm einzubauen und habe nun drei Dateien:

    main.cpp

    Class class1;
    SetTimer(NULL, 0, 1000,(TIMERPROC) &Class::myTimer);
    header.hpp

    void CALLBACK myTimer(HWND hwnd, UINT uMsg, UINT timerId, DWORD dwTime);
    functions.cpp

    void CALLBACK myTimer(HWND hwnd, UINT uMsg, UINT timerId, DWORD dwTime)
    {
    //auszuführender Code
    }
    Nun erhalte ich jedoch folgende Fehle rmeldung beim kompilieren:

    undefined reference to `Class::myTimer(HWND__*, unsigned int, unsigned int, unsigned long)
    Wenn ich alles in einer Datei habe, funktioniert das einwandfrei, so jedoch nicht.
    Wie kann ich die Referenz am Schluss der 'SetTimer'-Funktion nun an den Timer übergeben?

    SetTimer(NULL, 0, 1000, &myTimer); 🤗


Log in to reply