一个SetTimer函数回调函数的问题

eastnofail eastnofail 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
VOID CALLBACK TimeProc1(HWND hwnd, UINT uMsg, UINT_PTR idEvent,
DWORD dwTime)
{
::AfxMessageBox("SDGsdfg");
}

VOID CALLBACK CTestTimer::TimeProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent,
DWORD dwTime)
{
char buf[32]; sprintf(buf, "%d", m_timer);
::AfxMessageBox(buf);
}

int CTestTimer::Execute()
{
m_timer = SetTimer(NULL, 0, 3000, TimeProc);//这句编译出错
m_timer = SetTimer(NULL, 0, 3000, TimeProc1);//这句可以通过

return 0;
}

在编译出错的那句 使用强制转换也通不过,错误提示是:
不能将'void (struct HWND__ *,unsigned int,unsigned int,unsigned long)' 转换为:
'void (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,unsigned long)'
可是TimeProc这个成员方法明明就是__stdcall的调用方式啊!

这种方式在C++Builder下面编译可以通过,请高手给一个解决方案,谢谢
...全文

相关推荐

评论 15
收藏 已收藏
分享
返回顶部
eastnofail
VC/MFC 16,550 成员 421,606 内容