2009-09-14 7 views
0

J'essaie de faire une minuterie en C++. Je suis nouveau en C++. J'ai trouvé cet extrait de codeC++ Minuteur ne fonctionne pas?

UINT_PTR SetTimer (HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc);

je l'ai mis dans mes variables globales et il me dit

Erreur 1 erreur C2373: 'SetTimer': redéfinition; différents types de modificateurs

Je ne suis pas sûr de ce que cela signifie. Existe-t-il un moyen plus approprié de définir une minuterie?

Je ne suis pas en utilisant mfc/AFX

Merci

Répondre

3

Vous devriez l'appeler comme ceci:

void CALLBACK TimerProc(
HWND hwnd, 
UINT uMsg, 
UINT idEvent, 
DWORD dwTime 
) 
{ 
//do something 
} 

SetTimer(NULL, NULL, 1000, TimerProc); 

Cela créerait une minuterie pour 1 seconde et appellera TimerProc son expiration. Lire TimerProc MSDN ici: http://msdn.microsoft.com/en-us/library/ms644907%28VS.85%29.aspx

+0

Comment il appellera la fonction TimerProc si vous passez "OnTimer" dans SetTimer ?? – Swanand

+0

Bon point. Cette réponse a presque 4 ans :) –

+0

Je veux un badge Excavator;) – Swanand

1

Ce n'est pas un appel de fonction - qui est une déclaration de fonction, que vous #including probablement déjà quelque part. Ce dont vous avez besoin est l'appel SetTimer réel de votre code.

Pouvez-vous poster votre code où vous essayez de configurer le minuteur, et la fonction que vous voulez qu'il appelle quand il se déclenche?