无法从我刚刚写入的文件中读取ReadFile
我正在使用WriteFile
写入文件。这工作正常。它只是一个简单的字符串:无法从我刚刚写入的文件中读取ReadFile
“测试字符串,测试窗口功能”。
我试图从文件中读取,并与我写的字符串进行比较以确保其正常工作。我有:
DWORD dwBytesRead;
char buff[128];
ReadFile(hFile, buff, 128, &dwBytesRead, NULL)
但它对我来说是虚假的。 hFile
是写入文件时使用的句柄。可以对可能发生的事情有任何想法?
编辑(从评论更新):
我从GetLastError()
越来越E_ACCESSDENIED
。下面是我如何得到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);
干杯。尽管如此,我遇到了更多的问题。 buff充满了威尼斯人的经验。我从来没有遇到LPVOID之前,所以我不知道它是否有什么或什么。基本上我有上面的字符串,我想通过一个buff来测试字符串和什么im从文件读取是相同的。有没有办法做到这一点? – discodowney 2012-02-07 16:53:40
你在你的例子中赋予了buff []它的未初始化,看看@ http://msdn.microsoft.com/en-us/library/windows/desktop/bb540534(v=vs.85).aspx – 2012-02-07 16:58:04
@ user1100102,我会问另一个问题。它会得到更多的关注,并且更容易回应试图在评论中解决它的问题。 – hmjd 2012-02-07 16:59:24
你能张贴初始化'hFile'的代码? 'ReadFile()'失败后'GetLastError()'返回什么? – hmjd 2012-02-07 16:30:05
检查'GetLastError()',请显示如何获取'hFile'。 – 2012-02-07 16:30:57
您是否寻求回到文件的开头? – 2012-02-07 16:33:02