我使用WriteFile
写入文件。很好它只是一个简单的字符串:
“测试字符串,测试Windows函数”。
我正在尝试从文件中读取并与我编写的字符串进行比较,以确保其正常工作。我有:
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);
最佳答案
hFile
仅针对GENERIC_WRITE
打开。如果要读取和写入它,则需要使用GENERIC_READ
打开它:
hFile = CreateFile (TEXT(movedFileName.c_str()),
GENERIC_WRITE | GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);