проблема c PurgeComm
От: rvv Россия  
Дата: 16.07.04 10:02
Оценка:
//

Подскажите пожалуйста в чем может быть проблема, может быть кто сталкивался:

после 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.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.