大家好,欢迎来到IT知识分享网。
在控制台下,以如下方式定义一个定时器:
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中无需对回调函数进行强转。
转载于:https://blog.51cto.com/whatever957/1609843
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/22226.html