【发布时间】:2023-03-24 21:54:01
【问题描述】:
我一直在尝试从文件中读取,我正在使用 Windows API 函数 ReadFile()。我使用了以下代码:
int main()
{
LPDWORD bytesRead = 0;
HANDLE hFile = CreateFile("TestFile.txt", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_ALWAYS, 0, 0);
char Data[600];
ReadFile(hFile, Data, 10, bytesRead, 0);
cout << Data;
cin.get();
}
当我执行这段代码时,它会引发访问冲突!
这是为什么?我觉得我正确使用了ReadFile() - 但我可能错了。我该如何解决这个错误(如何正确使用ReadFile())?
【问题讨论】:
-
你可能想写
char Data[600] = {0};而不是char Data[600];。 -
缺少错误检查也是个问题。
-
您的
cout << Data;有问题。该版本的operator<<用于 C 风格的字符串,而不是任意数据。 -
由于
lpNumberOfBytesRead参数无效,Crash when calling ReadFile 可能重复。