这里出了什么问题,有人能帮我吗?无法使用malloc分配内存。。。
bReadFile = ReadFile( hConsoleFile, &ReadFileBuffer, MaxCharToRead, &CharsRead, NULL );
在对ReadFile
的调用中有&ReadFileBuffer
。应该向ReadFile
传递一个指向缓冲区的指针,而不是指向缓冲区指针的指针。
来自文件:
lpBuffer [out]
A pointer to the buffer that receives the data read from a file or device.
由于ReadFileBuffer
是一个指向缓冲区的指针,因此应该传递该指针。
ReadFile()
的签名是:
BOOL WINAPI ReadFile(
__in HANDLE hFile,
__out LPVOID lpBuffer,
__in DWORD nNumberOfBytesToRead,
__out_opt LPDWORD lpNumberOfBytesRead,
__inout_opt LPOVERLAPPED lpOverlapped
);
第二个参数应该是指向缓冲区的指针,而不是指向缓冲区指针的指针。这就是你做&ReadFileBuffer
时得到的。呼叫应为:
bReadFile = ReadFile(hConsoleFile, ReadFileBuffer, MaxCharToRead, &CharsRead, NULL);