c++ - 为什么在使用 ReadFile() 函数时会发生访问冲突?

标签 c++ windows winapi

<分区>

我一直在尝试从文件中读取数据,并且我正在使用 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 的指针。您已经为它提供了一个指针,但它是空的 - 它实际上并不指向 DWORD

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

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

相关文章:

c++ - 包含的 C++/C 头文件的实现在哪里?

C++:创建可以访问基类私有(private)变量的派生类?

C++指针对象区别

windows - 使用 CMD *Windows* 将文件夹上传到 Onedrive

windows - 为 Windows 提供可用性

c++ - 如何使用 winapi 创建一个对话框来选择多个文件?

c++ - 在模板中使用变量参数列表

Windows 计算机分析器

c++ - Win32 - 如何在工具栏中添加 slider ?

c++ - 使用 GetDIBits 加载位图