VC++ 2005

VC++ 2005のセキュアなCRTの変更は~







BEGIN_MESSAGE_MAP(CToFullModelDlg, CDialog)
       ~省 略~
ON_WM_TIMER()
END_MESSAGE_MAP()

void CToFullModelDlg::startTimer()
{
  m_nTimer = SetTimer(100000, 2000,0);
  // MessageBeep(0xFFFFFFFF);   // Beep
}

void CToFullModelDlg::stopTimer()
{
  KillTimer(m_nTimer);   
}


void CToFullModelDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: ここにメッセージ ハンドラ コードを追加するか、既定の処理を呼び出します。
   MessageBeep(0xFFFFFFFF);   // Beep
CDialog::OnTimer(nIDEvent);
}




   while (true)
       {
       //trace("## stderr");
       DWORD avail;
       if (!PeekNamedPipe(stderrRead, NULL, 0, NULL, &avail, NULL))
           break;
       if (avail > 0)
           {
           DWORD bytesRead = 0;
           char readBuf[1025];
           if (avail>1024) avail = 1024;
           if (!ReadFile(stderrRead, readBuf, avail, &bytesRead, NULL)
               || bytesRead == 0)
               {
               break;
               }
           for (unsigned int i=0 ; i<bytesRead ; i++)
               errbuf.push_back(readBuf[i]);
           }
       //trace("## stdout");
       if (!PeekNamedPipe(stdoutRead, NULL, 0, NULL, &avail, NULL))
           break;
       if (avail > 0)
           {
           DWORD bytesRead = 0;
           char readBuf[1025];
           if (avail>1024) avail = 1024;
           if (!ReadFile(stdoutRead, readBuf, avail, &bytesRead, NULL)
               || bytesRead==0)
               {
               break;
               }
           for (unsigned int i=0 ; i<bytesRead ; i++)
               outbuf.push_back(readBuf[i]);
           }
       DWORD exitCode;
       GetExitCodeProcess(piProcessInfo.hProcess, &exitCode);
       if (exitCode != STILL_ACTIVE)
           break;
       Sleep(100);
       }


























最終更新:2010年03月22日 22:52
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。