Wie übergebe ich der Funktion SetTimer() eine CALLBACK funktion



  • Hallo zusammen,

    wie der Titel schon sagt habe ich ein Problem beim übergeben einer Callback funktion.
    Ich rufe die Funktion folgendermassen auf:

    SetTimer(g_hWnd, TIMER_TOUCHBAR,TOUCHBAR_TIMER_INTERVAL,CTOUCHBAR::TimerProcTouchbar);
    

    und möchte das Sie mir die Funktion:

    void CALLBACK CTOUCHBAR::TimerProcTouchbar(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime);
    

    nach Ablauf des Timers aufruft.

    Bei Kompilieren erscheint dann folgende Fehlermeldung:
    error C2664: 'SetTimer' : cannot convert parameter 4 from 'void (struct HWND__ *,unsigned int,unsigned int,unsigned long)' to 'void (cdecl *)(struc
    t HWND
    *,unsigned int,unsigned int,unsigned long)'
    None of the functions with this name in scope match the target type

    Wer kann mir dabei helfen?

    Gruß
    spacehelix



  • Das geht so nicht, da der Parameter eine andere Funktion verlangt. Nimm die Funktion aus der Klasse raus, und alles ist in Butter. 🙂



  • Danke schön, das Funktioniert jetzt.



  • normal sollte aber ne Statische Funktion angenommen werden...



  • Ich weiß nicht, wie es in C++ ist, aber unter Delphi haben Methoden einer Klasse noch einen unsichtbaren self-Parameter. Wenn das bei C++ ähnlich ist, kann es nicht gehen, weil die Parameter nicht übereinstimmen (Anzahl, Typen).


Anmelden zum Antworten