文章詳情頁
c++ - win7下CreateFile失敗,GetLastError返回5
瀏覽:63日期:2022-10-12 08:49:46
問題描述
我在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難道不是管理員權限運行的嗎?哪怕不是,應該也有文件讀寫的權限吧?請問該如何處理才能成功創建呢?
問題解答
回答1:explorer.exe當然不是以管理員權限運行的你在文件管理器中,定位到系統盤根目錄,試試新建一個文件,同樣失敗
回答2:用vs2010的情況就是:項目-屬性-連接器-清單文件-UAC執行級別,選擇requireAdministrator。
排行榜
