C++ ReadFile函数lpbuffer和用于读取澄清的字节

C++ ReadFile函数lpbuffer和用于读取澄清的字节,c++,winapi,buffer,readfile,C++,Winapi,Buffer,Readfile,我对这一点很陌生,所以任何澄清都将不胜感激。使用函数ReadFile时,lpBuffer的类型如何与“要读取的字节数”参数交互 例如,如果将一个无符号的短MyShort[5]作为lpBuffer,然后将字节设置为2,该怎么办。是否所有数据都存储在MyShort[0]中?或者第一个字节进入MyShort[0],第二个字节进入MyShort[1]?当您将要读取的字节数增加到9时会发生什么?16位会进入MyShort[0],然后再进入MyShort[1]等吗 感谢lpBuffer始终被视为指向指定字节

我对这一点很陌生,所以任何澄清都将不胜感激。使用函数ReadFile时,lpBuffer的类型如何与“要读取的字节数”参数交互

例如,如果将一个无符号的短MyShort[5]作为lpBuffer,然后将字节设置为2,该怎么办。是否所有数据都存储在MyShort[0]中?或者第一个字节进入MyShort[0],第二个字节进入MyShort[1]?当您将要读取的字节数增加到9时会发生什么?16位会进入MyShort[0],然后再进入MyShort[1]等吗


感谢

lpBuffer
始终被视为指向指定字节数数组的指针(
nNumberOfBytesToRead
)。实际读取的字节数将存储在
lpNumberOfBytesRead
参数所指向的变量中,或稍后作为异步(重叠)结果存储。因此,在您的情况下,如果您请求读取2个字节,它可能会读取存储在
MyShort[0]
中的两个字节,或者只存储在
MyShort[0]
的下半部分中的一个字节,或者根本不读取。如果您请求读取9个字节,则它将准备最多9个字节,按顺序存储2+2+2+2+1字节。

lpBuffer
始终被视为指向指定字节数数组的指针(
nNumberOfBytesToRead
)。实际读取的字节数将存储在
lpNumberOfBytesRead
参数所指向的变量中,或稍后作为异步(重叠)结果存储。因此,在您的情况下,如果您请求读取2个字节,它可能会读取存储在
MyShort[0]
中的两个字节,或者只存储在
MyShort[0]
的下半部分中的一个字节,或者根本不读取。如果您请求读取9个字节,则它将准备最多9个字节,按顺序存储2+2+2+2+1字节。

请求的字节数按顺序存储在缓冲区中。lpBuffer参数的类型是
void*
ReadFile
调用无法知道您传递的类型,因此它应该如何响应不同的类型?@IInspectable lpBuffer不能是类型char或int吗?我只是想弄清楚当为读取的字节数指定1或2个字节时,8位与16位之间的交互作用。不管你的缓冲区是什么类型的。一旦将其传递到
ReadFile
,所有类型信息都将丢失。请求的字节数按顺序存储在缓冲区中。lpBuffer参数的类型是
void*
ReadFile
调用无法知道您传递的类型,因此它应该如何响应不同的类型?@IInspectable lpBuffer不能是类型char或int吗?我只是想弄清楚当为读取的字节数指定1或2个字节时,8位与16位之间的交互作用。不管你的缓冲区是什么类型的。一旦将其传递到
ReadFile
,所有类型信息都将丢失。政府希望如此。