WinAPI GetLastError#5

WinAPI GetLastError#5,winapi,Winapi,我打算将此句柄用于WriteFile函数,但GetLastError给了我#5。我知道访问被拒绝,但我不知道该怎么办。我检查了一会儿,看到了关于用户权限的信息,但我已经是管理员了 另一件事是:我在VS2010上编码,当我执行代码时,GetLastError给了我#5,但当我执行exe(C://blah/blah/PROJECT_NAME/debug/PROJECT.exe)时,它给了我#6 我只是糊涂了。非常感谢你的帮助 HANDLE hAndle = CreateFile("test.txt"

我打算将此句柄用于WriteFile函数,但GetLastError给了我#5。我知道访问被拒绝,但我不知道该怎么办。我检查了一会儿,看到了关于用户权限的信息,但我已经是管理员了

另一件事是:我在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;
HANDLE HANDLE=CreateFile(“test.txt”,
泛读,
文件共享读取,
无效的
开放式,
文件\u属性\u正常,
无效的
);
char msge[]=“\n某物\n”;
德沃德gb;
if(WriteFile(hAndle,msge,strlen(msge),&gb,NULL)!=TRUE)

cout错误代码6是:句柄无效。当您尝试执行CreateFile时,打开的\u存在于无效路径上,您将返回无效的\u句柄\u值。如果将此值传递给WriteFile,它将返回错误代码6


但是,您使用GENERIC_READ调用CreateFile,并使用获得的句柄尝试写入该文件。这样不行。您必须使用通用的写入和

错误访问被拒绝
意味着您没有足够的权限。毕竟,您正在尝试向一个只请求读取权限的句柄进行写入<代码>错误\无效\句柄
表示句柄无效。这是调用
CreateFile
时未能检查错误的结果。