Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [c++] callback

  1. #1

    [c++] callback

    Devo usare la funzione per il timer timesetevent che necessita di una funzione di callback ma non riesco a farlo funzionare:

    void CMetronomoDlg::OnButton1()
    {

    m_tempo =int(1000*(60/(float)m_slidervalue));
    ritTimer = timeSetEvent (m_tempo,0,timer_callback ,0,TIME_PERIODIC && TIME_CALLBACK_FUNCTION);

    }
    La funzione di callback

    void CMetronomoDlg::timer_callback(UINT uID,UINT uMsg,DWORD dwUser,DWORD dw1,DWORD dw2){
    //mio codice bla bla
    }

    Errore del compilatore:

    error C2664: 'timeSetEvent' : cannot convert parameter 3 from 'void (unsigned int,unsigned int,unsigned long,unsigned long,unsigned long)' to 'void (__stdcall *)(unsigned int,unsigned int,unsigned long,u ecc....

    qualquno sa dirmi dove sbaglio?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    suppongo che tu stia usando VC++.
    Quella (__stdcall), se non sbaglio, è una delle possibili convenzioni per chiamare le funzioni, ne esistono diverse (e a volte cambiano da compilatore a compilatore).

    Servono per spiegare al compilatore come "trattare" alcuni aspetti della chiamata alla funzione, come il passaggio da sinistra a destra degli argomenti (o viceversa), le responsabilità per la rimozione dallo stack dei parametri, le convenzioni sui nomi assembly legati alle funzioni.

    In genere non si modifica questo aspetto, a meno che non si voglia usare particolari accorgimenti, come ad esempio creare funzioni stile-pascal (con gli argomenti passati da sx a dx),o come in questo caso.
    Quello che dovresti fare e dichiarare la tua funzione usando quella particolare convenzione:
    http://msdn.microsoft.com/library/de...onventions.asp

    PS: forse sbaglio, ma non credo vada bene combinare le costanti con &&, ma con & o |.

    ciauz
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.