我正在使用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);
答案 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);