永发信息网

VC中利用timeSetEvent函数计数的例子求助

答案:1  悬赏:50  手机版
解决时间 2021-01-30 08:09
  • 提问者网友:箛茗
  • 2021-01-29 21:40
void CALLBACK JiShu(UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2)
{
CJiShuQiDlg* pThis1 = (CJiShuQiDlg*)dwUser;//由this指针获得实例的指针
pThis1->JiaFa();//调用要回调的成员方法
}

void CJiShuQiDlg::OnBtnStart()
{
// TODO: Add your control notification handler code here
gl_uTimerId = timeSetEvent(100,100,JiShu,0,TIME_PERIODIC);
}

void CJiShuQiDlg::OnBtnStop()
{
// TODO: Add your control notification handler code here
timeKillEvent(gl_uTimerId);
}

void CJiShuQiDlg::JiaFa()
{
m_jishu++;
UpdateData(FALSE);
}
程序如上所示,我想利用timeSetEvent函数计数,每过100ms,数字就加一,加一后显示在编辑框中,就是m_jishu对应的值(每过100ms,执行下JiaFa函数,值加一)。但是运行后程序崩溃,这是什么原因呢?
最佳答案
  • 五星知识达人网友:春色三分
  • 2021-01-29 22:53
gl_uTimerId = timeSetEvent(100,100,JiShu,0,TIME_PERIODIC);

这里没有传入类指针,应该改成
gl_uTimerId = timeSetEvent(100,100,JiShu,this,TIME_PERIODIC);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯