settimer

场景:Settimer在WINCE上失效

Settimer在WINCE下失效,求助
最近在做工控机的界面,年前发现内存泄露,解决之后发现初始化中的Settimer失效了。DEBUG时执行到Settimer哪一行就直接跳出OnInitDialog了,将三行Settimer注释再运行程序,后面的PostMessage( WM_COMMAND ,IDC_MAIN_MENU1,NULL);也无法正常执行,同样发生跳出的情况。
代码如下:
BOOL CPunchDlg::OnInitDialog()
{
CDialog::OnInitDialog();
.......
(控件布局,风格设置等)
********************消息注册******************************/

WM_KEYBOARD_SHOW= RegisterWindowMessage(_T("WM_KEYBOARD_SHOW"));
WM_KEYBOARD_HIDE= RegisterWindowMessage(_T("WM_KEYBOARD_HIDE"));

//::PostMessage(HWND_BROADCAST,WM_KEYBOARD_SHOW,NULL,NULL);
/***********************  ***************************/

m_DisTimer=SetTimer(1,100,NULL);//运动信息刷新显示
m_TitalTimer=SetTimer(2,350,NULL);//标题栏刷新显示
m_SaveTimer=SetTimer(3,1000,NULL);//定时存盘



PostMessage( WM_COMMAND ,IDC_MAIN_MENU1,NULL);

//-----------------参数传递----------------------------

g_pDataRam->WriteAllParam();
g_pCMDParam->PARA_OPR=0x02;//写入完成

g_pCMDParam->INIT=true; //(*HMI初始化完成,HMI准备就绪*)
g_pCMDParam->TEST=false; //(*设置参数及测试状态,不能进行其他操作*)

return TRUE;  // return TRUE  unless you set the focus to a control
}

怀疑过窗体未创建成功,在Settimer前加
HWND rtn=this->GetSafeHwnd();测试,同样也是不能正常执行,debug时直接就跳出了,也看不到返回值rtn。
已经纠结快一周了,对比之前版本的代码,也找不到问题,求助各位大大。

------解决方案--------------------
应该不是SetTimer本身的问题,而是前面执行过程中产生的问题,可以检查跟踪一下前面的代码
------解决方案--------------------
如果怀疑Settimer,专门写一小段测试代码来测试,不要放在你的项目中测试。

不少项目初始化阶段会有指针错误。主要是全局变量未初始就使用或初始化次序问题,其次是加载不稳定的第三方包引起的问题,代码运行逻辑问题反而不是常见的了。指针错误(如越界)所造成的后果是不确定的,它的直接危害是破坏了预设的内存布局,基本不会在当时就产生错误。