WinAPI GetLastError#5

时间:2014-06-25 10:48:34

标签: winapi

我将把这个句柄用于WriteFile函数,但GetLastError给了我#5。我知道它是Access Denied但我不知道该怎么做。我检查了一段时间,我看到它的用户权利,但我已经作为管理员。

另一件事是:我在VS2010编码,当我执行代码GetLastError给我#5但是当我执行exe(C://blah/blah/PROJECT_NAME/debug/PROJECT.exe)它给了我#6。

我很困惑。非常感谢你的帮助。

HANDLE hAndle = CreateFile("test.txt",
    GENERIC_READ,
    FILE_SHARE_READ,
    NULL,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL,
    NULL
    );
char msge[]="\nsomething\n";
DWORD gb;

if( WriteFile(hAndle,msge,strlen(msge),&gb,NULL) != TRUE )
    cout << GetLastError() << endl;
编辑:我真是个傻瓜。我用这个解决了这个问题: GENERIC_WRITE | GENERIC_READ

真的,谢谢你......

1 个答案:

答案 0 :(得分:1)

错误codd 6是:句柄无效。当您尝试在无效路径上使用OPEN_EXISTING执行CreateFile时,您将返回INVALID_HANDLE_VALUE。如果将此值传递给WriteFile,它将返回错误代码6。

但是,您使用GENERIC_READ调用CreateFile并使用您获得的句柄,您正在尝试写入该文件。这不起作用。你必须使用GENERIC_WRITE和