CListCtrl *pList 重复调用异常issue
CListCtrl * pList=(CListCtrl*)GetDlgItem(IDC_LISTRESULT);
CStatic *pStatic=(CStatic*)GetDlgItem(IDC_STATICDUTINF);
在重复调用CListCtrl和Static指针时出现程式异常退出,程式画面会出现转圈卡死.
BOOL TestDlg::_checkDUTLabels()
{
int iter=0;
clock_t start, finish;
float duration=0;
start = clock();
CString str;
CListCtrl * lst=(CListCtrl*)GetDlgItem(IDC_LISTRESULT); //重复调用_checkDUTLabels这一步会出现崩溃
CStatic *staticinf=(CStatic*)GetDlgItem(IDC_STATICDUTINF); //重复调用_checkDUTLabels这一步会出现崩溃
while(1)
{
if (/*TRUE == _ScanLables &&*/ (_rev_com.Find("Welcome to the BrightSign")!=-1 || _rev_com.Find("BrightSign>") != -1))
{
Add2Log("step5, find brightsign ok \r\n",RGB(255,0,0));
break;
}
Sleep(3000);
if (iter++>40)
{
finish = clock();
duration = (float)(finish - start)/CLOCKS_PER_SEC;
str.Format("%fs",duration);
m_strLog += "TIMEOUT test [fail] " + str + "\r\n";
lst->SetItemText(resline,2,str);
str.Format("TIMEOUT###NA###NA###fail\r\n");
m_strSFC +=str;
m_strErrCode="TIMEOUT\r\n";//Check LED Blink Fail
lst->SetItemText(resline++, 3, "FAIL");
lst->SetTextColor(RGB(128, 0, 0));
staticinf->SetWindowText("error code: TIMEOUT");
return FALSE;
}
}
GetDlgItem(IDC_STATICTESTINF)->SetWindowText("DUT Testing...");
return TRUE;
}