成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:111日期: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。