C++ Can';i don’我不能从我刚刚写入的文件中读取ReadFile
我正在使用C++ Can';i don’我不能从我刚刚写入的文件中读取ReadFile,c++,windows,C++,Windows,我正在使用WriteFile写入文件。那很好。它只是一个简单的字符串: “测试字符串,测试windows函数” 我现在正试图从文件中读取并与我编写的字符串进行比较,以确保其正常工作。我有: DWORD dwBytesRead; char buff[128]; ReadFile(hFile, buff, 128, &dwBytesRead, NULL) 但这对我来说是错误的hFile是写入文件时使用的句柄。你对可能发生的事情有什么想法吗 编辑(根据评论更新): 我正在从GetLastEr
WriteFile
写入文件。那很好。它只是一个简单的字符串:
“测试字符串,测试windows函数”
我现在正试图从文件中读取并与我编写的字符串进行比较,以确保其正常工作。我有:
DWORD dwBytesRead;
char buff[128];
ReadFile(hFile, buff, 128, &dwBytesRead, NULL)
但这对我来说是错误的hFile
是写入文件时使用的句柄。你对可能发生的事情有什么想法吗
编辑(根据评论更新):
我正在从GetLastError()
获取E\u访问被拒绝
。以下是我如何获得hFile
:
hFile = CreateFile (TEXT(movedFileName.c_str()),
GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
hFile
仅为GENERIC\u WRITE
打开。如果您想从中读取和写入,则需要使用GENERIC_READ
打开它:
hFile = CreateFile (TEXT(movedFileName.c_str()),
GENERIC_WRITE | GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
您可以发布初始化为
hFile
的代码吗?GetLastError()
失败后,ReadFile()
返回什么?检查GetLastError()
,请说明如何获取hFile
。是否返回到文件的开头?我从GetLastError获得E_访问拒绝。(对以下内容表示歉意,我不知道如何设置这些帖子的格式)以下是我如何获得hFile:hFile=CreateFile(TEXT(movedFileName.c_str()),GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);编辑-是的,找到了。为我这样发布回复而干杯。泛型写应该是泛型写,泛型读。干杯。不过,我在这方面遇到了进一步的问题。buff充满了正义感。我以前从未遇到过LPVOID,所以我不知道它是不是有什么东西。基本上我有上面的字符串,我想通过一个buff来测试字符串和我从文件中读取的内容是否相同。有什么方法可以做到这一点吗?在您的示例中,您是否将buff[]指定为未初始化的,请看一看@user1100102,我想问另一个问题。它将得到更多的关注,更容易回应,试图在评论中解决它。