This question already has answers here:
Crash when calling ReadFile after LockFileEx

(2个答案)


5年前关闭。




我一直试图从文件中读取文件,并且正在使用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())?

最佳答案

ReadFile的第四个参数是DWORD的指针。您已经给它提供了一个指针,但是它为null-实际上并没有指向DWORD

DWORD bytesRead = 0;
...
ReadFile(hFile, Data, 10, &bytesRead, 0);

关于c++ - 为什么在使用ReadFile()函数时出现访问冲突? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31367665/

10-12 20:41