DWORD WINAPI CMainDlg::ScanThread(LPVOID lparam) { CMainDlg *pThis = (CMainDlg *)lparam; // 初始化Winsock WSADATA wsaData; if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) return 0; pThis->sDomainArray.RemoveAll(); //读取字典 try { CStdioFile file; CString strBuffer, strTmp; file.Open(pThis->m_strDictionaryPath, CFile::modeRead); while(file.ReadString(strBuffer) > 0) { try { if(strBuffer.GetLength() > 0) { strTmp = strBuffer; strTmp += "."; strTmp += pThis->m_strDomain; pThis->sDomainArray.Add(strTmp); } } catch (...){} } file.Close(); } catch (...){} if (InitializeCriticalSectionAndSpinCount(&pThis->cs, 0x80000400)) { pThis->dwThreadsUsed = 0; pThis->startScanSubDomain(&pThis->sDomainArray); DeleteCriticalSection(&pThis->cs); } pThis->m_bScanning = FALSE; pThis->StatusTextOut(0, "%s", "扫描完成!"); pThis->StatusTextOut(1, ""); pThis->m_btnScan.EnableWindow(TRUE); pThis->SetDlgItemText(IDC_BUTTON_SCAN, "开始"); WSACleanup(); return 0; }