posts - 11,  comments - 12,  trackbacks - 0
//回调函数
void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nIDEvent,DWORD dwTime){
  CTime time=CTime::GetCurrentTime();
  CString str=time.Format("%H:%M:%S");
  m_Time.SetWindowText(str);
 }

//SetTimer函数调用
CWnd::SetTimer(1,1000,TimerProc);

编译出错,错误信息如下:
C:\Documents and Settings\ttc\桌面\C_workplace\System_Time\System_TimeDlg.cpp(164) : error C2664: 'SetTimer' : cannot convert parameter 3 from 'void (struct HWND__ *,unsigned int,unsigned int,unsigned long)' to 'void (__stdcall *)(struct HWND__ *,un
signed int,unsigned int,unsigned long)'
        None of the functions with this name in scope match the target type

这是为什么???
期待高手解决!
posted on 2009-07-31 10:54 人生在于攀登! 阅读(729) 评论(3)  编辑 收藏 引用

FeedBack:
# re: SetTimer疑惑!
2009-07-31 16:39 | 阿土仔
C call转stdcall错,
VOID CALLBACK TimerProc( HWND hwnd,
UINT uMsg,
UINT_PTR idEvent,
DWORD dwTime
);

CALLBACK被重定义了,  回复  更多评论
  
# re: SetTimer疑惑!
2009-07-31 19:04 | 人生在于攀登!
怎么修改啊 我在msdn里查的是这么用的啊!希望高手能给出修改后的调用!@阿土仔
  回复  更多评论
  
# re: SetTimer疑惑![未登录]
2009-09-10 23:26 | 蓝色天空
@人生在于攀登!
只要类型强制转换下就可以了,
即SetTimer(1,1000,(TIMERPROC)TimerProc);
MSDN上定义了SetTimer的最后一个参数类型是TIMERPROC;
呵呵  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜