我在MFC初始化的时候设置了一个定时器,使用系统默认的回调函数。KillTimer放在了ExitProcess部分。奇怪的是程序运行一段时间(十多分钟)后就崩溃了。我确定是定时器的原因。可能是内存泄漏,但是简单的定时器也没有什么泄漏的地方啊,请教

解决方案 »

  1.   

    你最好不要在ExitProcess ,这样的函数里做清理工作。你可以在窗口的OnDestroy响应函数里清理定时器,或者在CWinApp的ExitInstance清理,利用后者做清理工作是因为你设置定时器的时候指定了回调函数。
    另外,你最好吧定时器消息的处理函数贴出来
      

  2.   


    定时器定义语句如下:
    SetTimer(12,500,0);定时器消息代码如下:void CAdministratorDlg::OnTimer(UINT nIDEvent) 
    {
    // TODO: Add your message handler code here and/or call default

    TCHAR WindowTitle[100]="\0";
    HWND hWnd;
    hWnd = ::GetForegroundWindow();
    ::GetWindowText(hWnd,WindowTitle,255);
    if(_tcscmp(WindowTitle,"test") == 0)
    {
    AutoInput();             //这个函数应该没问题。只是普通的模拟按键
    }
    CDialog::OnTimer(nIDEvent);
    }