찾다

 >  Q&A  >  본문

c++ - win7下CreateFile失败,GetLastError返回5

我在DLL中使用了如下代码创建文件:

HANDLE pHandle = CreateFile("C:\\test",GENERIC_ALL,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if (pHandle ==INVALID_HANDLE_VALUE)
cout<<"CreateFile Error:"<<GetLastError()<<endl;

然后将dll注入到explorer.exe中执行。
在xp以及没有开启UAC的win7上都是正常的,但开启了UAC的win7上,会创建失败,GetLastError返回的是5,权限不足。
为什么会失败呢?
explorer.exe难道不是管理员权限运行的吗?哪怕不是,应该也有文件读写的权限吧?
请问该如何处理才能成功创建呢?

PHP中文网PHP中文网2804일 전1026

모든 응답(2)나는 대답할 것이다

  • 高洛峰

    高洛峰2017-04-17 15:41:57

    물론 explorer.exe는 관리자 권한으로 실행되지 않습니다
    파일 관리자에서 시스템 디스크의 루트 디렉토리로 이동하여 새 파일을 생성하려고 시도하지만 역시 실패합니다

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-17 15:41:57

    vs2010을 사용할 때의 상황은 다음과 같습니다: Project-Properties-Connector-Manifest File-UAC 실행 수준, requireAdministrator를 선택합니다.

    회신하다
    0
  • 취소회신하다