欢迎光临散文网 会员登陆 & 注册

ReadFile返回值是true,但是读取到的是0字节,输出缓冲区为string类型,读取数据为空

2023-04-18 10:57 作者:ベ计院小白隆ミ  | 我要投稿

原始代码:


断点打到int a = 0;外层判断处:

这种情况是因为在调用WriteFile之后,文件指针已经在文件尾,所以ReadFile是从文件尾读的。

解决方法就是将文件指针移动到文件开始。

在调用ReadFile之前使用SetFilePointer将文件指针移动到文件开始:

但是发现strRet的值为空,这也是一个坑,输出缓冲区最好是使用基本类型:

补充一点,WriteFile之后就使用ReadFile读取写入的内容,有的说是可能数据还没有写入文件,要使用FlushFileBuffers刷新缓冲区,之后再调用ReadFile读取内容,但是,我调试的过程中发现有没有FlushFileBuffers对于读取数据没有影响

ReadFile返回值是true,但是读取到的是0字节,输出缓冲区为string类型,读取数据为空的评论 (共 条)

分享到微博请遵守国家法律