标签:settimer
在控制台下,以如下方式定义一个定时器:
UINT_PTR TimerID = SetTimer(NULL,1,1000,MyTimerProc); 其回调函数如下定义: VOID CALLBACK TimerProc( HWND hwnd, // handle to window UINT uMsg, // WM_TIMER message UINT_PTR idEvent, // timer identifier DWORD dwTime // current system time ); 按以上定义方式,程序会报以下错误: error C2664: ‘SetTimer‘ : cannot convert parameter 4 from ‘void (struct HWND__ *,unsigned int,unsigned long,unsigned long)‘ to ‘void (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,unsigned long)‘ None of the functions with this name in scope match the target type 错误类型为:回调函数类型不一致。 解决方法为:将MyTimerProc回调函数进行强转。 UINT_PTR TimerID = SetTimer(NULL,1,1000,(TIMERPROC)MyTimerProc); 注:以上错误只在vs6.0中出现,在更高版本的vs中无需对回调函数进行强转。
本文出自 “whatever957” 博客,请务必保留此出处http://whatever957.blog.51cto.com/6835003/1609843
标签:settimer
原文地址:http://whatever957.blog.51cto.com/6835003/1609843