我有一个虚拟串口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的得到有效的性格像0×01,0×02,×03 ......但是有一个问题用0x00,代码不读像我所料,我尝试用超级终端和完美的作品。
我在DCB结构中定义:
dcb.fNull = false;
但我仍然有同样的问题,任何帮助吗?
这个问题似乎是不ReadFile的(),而是在你使用TMP的[]作为终止“\ 0”正好是0×00,太。
你说的“不读像我预期”是什么意思?你能否更详细地描述症状?