ReadFile返回值是true,但是读取到的是0字节,输出缓冲区为string类型,读取数据为空
原始代码:
断点打到int a = 0;外层判断处:

这种情况是因为在调用WriteFile之后,文件指针已经在文件尾,所以ReadFile是从文件尾读的。
解决方法就是将文件指针移动到文件开始。
在调用ReadFile之前使用SetFilePointer将文件指针移动到文件开始:

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

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