神阿,救救我吧!! 调试DLL时单步的时候会莫名其妙的跳过去许多步, 实在怀疑是VC6的Bug所致
wt13 2002-08-14 11:23:49 Windows 2000 professional, VC 6.0 Enterprise
代码如下:
....
return com.WriteBuffer(byBuffer); //这里是函数入口, 我在这里设立了断点, 程序已经执行到此,下一步应该调用类成员函数了, 从这里我开始单步执行
}
DWORD COMM ::WriteBuffer(const BYTE * const byBuffer)
{
if(byBuffer == NULL)
return 0;
if (!bConnect)
return 0;
BOOL bRet;
COMSTAT ComStat;
DWORD dwErrorFlags;
DWORD dwBytesWritten;
OVERLAPPED OverlappedWrite;
bRet = WriteFile(hCom, byBuffer, dwWriteLength, &dwBytesWritten, &OverlappedWrite);
if(!bRet)
{
if(GetLastError()==ERROR_IO_PENDING)
{
while(!GetOverlappedResult(hCom, &OverlappedWrite,&dwBytesWritten,TRUE))
{
if(GetLastError() == ERROR_IO_INCOMPLETE) //从上面断点下来的第一步居然就是这里, 实在莫名其妙, 还有,此时bRet的值根本不是0, 不知为何会到这里来????
continue;
else
{
ClearCommError(hCom,&dwErrorFlags,&ComStat);
break;
}
}
}
else
{
ClearCommError(hCom, &dwErrorFlags, &ComStat);
return 0;
}
}
return dwBytesWritten;
}
请问有谁碰到过吗? 多谢高手指点。
谢谢