文章詳情頁
c++ - win7下CreateFile失敗,GetLastError返回5
瀏覽:97日期:2022-10-12 08:49:46
問題描述
我在DLL中使用了如下代碼創(chuàng)建文件:
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中執(zhí)行。在xp以及沒有開啟UAC的win7上都是正常的,但開啟了UAC的win7上,會創(chuàng)建失敗,GetLastError返回的是5,權(quán)限不足。為什么會失敗呢?explorer.exe難道不是管理員權(quán)限運行的嗎?哪怕不是,應(yīng)該也有文件讀寫的權(quán)限吧?請問該如何處理才能成功創(chuàng)建呢?
問題解答
回答1:explorer.exe當(dāng)然不是以管理員權(quán)限運行的你在文件管理器中,定位到系統(tǒng)盤根目錄,試試新建一個文件,同樣失敗
回答2:用vs2010的情況就是:項目-屬性-連接器-清單文件-UAC執(zhí)行級別,選擇requireAdministrator。
標(biāo)簽:
Windows系統(tǒng)
win7
排行榜

熱門標(biāo)簽