我在虚拟串口中遇到ReadFile函数问题:
char tmp[128];
int multiplo=0;
DWORD err;
COMSTAT stt;
ClearCommError(hcom, &err, &stt);
do{
if(ReadFile(hcom, tmp, stt.cbInQue, &err, NULL)){
tmp[err] = '\0';
memcpy(bfIn+multiplo, tmp, err);
multiplo = multiplo + err;
}else
return 0;
}while(err > 0);
当ReadFile获得有效字符(如0x01,0x02,0x03)时,此代码有效...但是0x00存在问题,代码读取不像我预期的那样,我尝试使用超级终端并且工作正常。
我已经在dcb结构中定义了:
dcb.fNull = false;
但我仍有同样的问题,有什么帮助吗?
答案 0 :(得分:0)
问题似乎不在于ReadFile(),而在于你使用tmp [],因为终止'\ 0'也恰好是0x00。
你的意思是“不像我预期的那样读”?你能更详细地描述这些症状吗?