【发布时间】:2014-06-25 10:48:34
【问题描述】:
我打算将此句柄用于 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;
编辑:我是多么愚蠢。我用这个解决了这个问题: GENERIC_WRITE | GENERIC_READ
真的谢谢你...
【问题讨论】:
-
ERROR_ACCESS_DENIED表示您没有足够的权限。毕竟,您正在尝试写入仅请求读取权限的句柄。ERROR_INVALID_HANDLE表示您的句柄无效。这是您在调用CreateFile时未能检查错误的结果。
标签: winapi