7981|12

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

createfile成功,writefile返回的正确,指定读取数据为3,但是实际读取字节数为0,是什么原因? [复制链接]

createfile成功,writefile返回的正确,指定读取数据为3,但是实际读取字节数为0,是什么原因?

最新回复

串口操作??? 如果没有设置SetCommTimeouts(); 可以设置下写的缓冲时间. 如果已经设置了可以尝试修改下这个时间. 另外有没有设置输入输出缓冲区大小? 没有你的全部流程...只是猜测.  详情 回复 发表于 2008-7-9 14:27
点赞 关注

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
看看该文件是否已经正确写入,并保存了。
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
//一下是我的代码
BYTE    strbuf[4]  = { 29, 97, 1 };
bResult = WriteFile(hDevice, strbuf, 3, &nBytesRead, NULL);
if (bResult &&  0 != nBytesRead)
{
    DBG_OutputMSG(TEXT("write status command succeed!\r\n"));
}
else
{
    wsprintf(strResult, TEXT("send status command failed, bResult=%d, nBytesRead=%d, error=%d!\r\n"), bResult, nBytesRead, GetLastError());
    DBG_OutputMSG(strResult);
    bResult = FALSE;
}

不知道为什么,总走到else的语句中?然后,bResult为1,nBytesRead是0,当然,GetLastError是0,一切正常,可是nBytesRead什么显示实际读取数据为0呢?
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 

BYTE    strbuf[4]  = { 29, 97, 1 };
bResult = WriteFile(hDevice, strbuf, 3, &nBytesRead, NULL);
FindClose(hDevice);
然后再判断呢
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 lenux 的回复:

BYTE    strbuf[4]  = { 29, 97, 1 };
bResult = WriteFile(hDevice, strbuf, 3, &nBytesRead, NULL);
FindClose(hDevice);
然后再判断呢


你说的方法试了:在if前添加了FindClose(hDevice);可还是一样的结果
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
关注中
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 
你单独建一个project,然后单独对一个已经存在的文件里写几个数据,看是否能成功。写完FileClose,然后直接双击打开该文件,看是否写入。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

8
 
我写文件的时候从来没有判断过nBytesRead,

 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

9
 
Return Value
Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

10
 
GetLastError()返回值是多少?
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 9 楼 feitianlee 的回复:
GetLastError()返回值是多少?


GetLastError()返回值是0,成功无错误啊
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

12
 
那你现在别局限在nBytesRead,就是“成功写入字节数”这个参数上了。
先直接打开文件,看看是不是成功写进去了。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

13
 
串口操作???

如果没有设置SetCommTimeouts();
可以设置下写的缓冲时间.

如果已经设置了可以尝试修改下这个时间.

另外有没有设置输入输出缓冲区大小?


没有你的全部流程...只是猜测.
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表