我对此很陌生,所以任何澄清都将不胜感激。使用ReadFile函数时,lpBuffer的类型如何与参数“读取字节数”交互?
例如,如果您有一个无符号的 short MyShort[5] 作为 lpBuffer,然后您设置字节读取为 2。是否所有数据都存储在 MyShort[0] 中?还是第一个字节进入 MyShort[0],第二个字节进入 MyShort[1]?当您将要读取的字节数增加到 9 时会发生什么? 16 位会进入 MyShort[0],然后 16 位进入 MyShort[1] 等等......?
谢谢
最佳答案
lpBuffer
始终被视为指向指定字节数 (nNumberOfBytesToRead
) 的数组的指针。实际读取的字节数将存储在 lpNumberOfBytesRead
参数指向的变量中或稍后作为异步(重叠)结果。因此,在您的情况下,如果您请求读取 2 个字节,它可能会读取两个字节,将它们都存储在 MyShort[0]
中,或者只读取一个字节存储在 MyShort[0] 的下半部分]
或什么都没有。如果您请求读取 9 个字节,那么它将准备好最多 9 个字节,依次存储 2 + 2 + 2 + 2 + 1 个字节。
关于c++ - ReadFile 函数 lpbuffer 和字节读取说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48772158/