无法从我刚写入的文件中读取ReadFile

时间:2012-02-07 16:26:45

标签: c++ windows

我正在使用WriteFile写一个文件。这很好。它只是一个简单的字符串:

  

“测试字符串,测试窗口函数”。

我现在尝试从文件中读取并与我编写的字符串进行比较以确保其正常工作。我有:

DWORD dwBytesRead;
char buff[128];
ReadFile(hFile, buff, 128, &dwBytesRead, NULL)

但它对我来说是假的。 hFile是我在写入文件时使用的句柄。可以对可能发生的事情有任何想法吗?

编辑(从评论更新):

我从E_ACCESSDENIED获得GetLastError()。以下是我hFile

的方法
hFile = CreateFile (TEXT(movedFileName.c_str()),
                    GENERIC_WRITE,
                    0,
                    NULL,
                    OPEN_EXISTING,
                    FILE_ATTRIBUTE_NORMAL,
                    NULL);

1 个答案:

答案 0 :(得分:1)

hFile仅针对GENERIC_WRITE打开。如果您想要读取它并写入它,则需要使用GENERIC_READ打开它:

hFile = CreateFile (TEXT(movedFileName.c_str()),
                    GENERIC_WRITE | GENERIC_READ,
                    0,
                    NULL,
                    OPEN_EXISTING,
                    FILE_ATTRIBUTE_NORMAL,
                    NULL);