//
Подскажите пожалуйста в чем может быть проблема, может быть кто сталкивался:
после OVERLAPPED операции чтения из COM-порта завершившейся по таймауту,
при вызове PurgeComm(m_hComm,PURGE_TXABORT| PURGE_RXABORT | PURGE_TXCLEAR| PURGE_RXCLEAR)
происходит порча локльных переменных (в частности оказывается испорчена стуктура ovr)
PurgeComm — ошибок не возвращает.
код примерно выглядит так
OVERLAPPED ovr = {0};
.....
ReadFile(m_hComm, buf, readSize, &bc, &ovr);
.....
WaitForSingleObject(ovr.hEvent, ReadIntervalTimeout); // выход по превышению времени ожидания
// далее код из другого метода
OVERLAPPED ovr = {0}; // портится эта пременная
.....
PurgeComm(m_hComm,PURGE_TXABORT| PURGE_RXABORT | PURGE_TXCLEAR| PURGE_RXCLEAR);// Здесь происходит повреждение ovr
Ошибка наблюдается только в Release версии.
VC.NET, Windows2000, WindowsXP.