應用無法正常啟動0xc0000022 應用無法正常啟動0xc0000005


應用無法正常啟動0xc0000022 應用無法正常啟動0xc0000005

文章插圖
大家好,小跳來為大家解答以上的問題 。應用無法正常啟動0xc0000005 , 應用無法正常啟動0xc0000022這個很多人還不知道,現在讓我們一起來看看吧!
1、朋友,這是你的電腦“丟失”或“誤刪”了“系統文件”,或“系統文件”被病毒和“頑固”木馬“破壞” , 我給你8套方案?。ù鳶岡? ,嚴禁盜用,如有雷同 , 純屬山寨?。ㄌ崾荊?60急救箱不能聯網,就先用:(5)網絡修復,重啟電腦 , 或者使用:離線模式)1.下載個:“360系統急救箱”?。ò踩J較?,聯網使用,效果更好?。ㄗ⒁猓閡丫滄傲恕?60安全衛士”的朋友 , 直接打開“木馬云查殺”,點擊:快速掃描,掃描結束后,中間有:沒有問題,請用360急救箱,點擊它?。┮話閎銜?,VC2005編譯出來的東西,如果用了atl或者mfc,需要atl80.dll 或者msmfc80.dll , 我在一開始的時候也是這么認為的,我把這兩個文件放在了path中可以找到的地方 。
2、因此用depends看出來是沒問題的 。
3、但 是事實上,從VC2005開始 , (可能2003,但是我沒有用過)這些dll是不像以前的程序那樣直接被加載進進程的 。
4、查看%SYSTEMROOT%/ winsxs會發現里面有很多類似于x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.42_x- ww_6e805841的目錄,這些目錄里面包含了atl80.dll, msmfc80.dll 。
5、然后在manifests 目錄里面有對應的manifests:x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.42_x -ww_6e805841.manifest這是VC8的一個改變 。
6、VC8編譯的程序在運行時加載動態庫(crt, mfc, atl )都是放在一個類似全局類型庫的地方 。
7、不再像以前MS所建議的那樣,為了避免dll hell而把動態庫放在程序同級目錄 。
8、而這個全局類型庫的地方就是winSxS , 同時加載之前還需要有該dll對應的manifest 。
9、具體加載dll的時候為什么需要Manifest我不是很清楚,Visual C++ 2005的 program manager Martyn Lovell在他的blog中有提到要解釋這樣做的原因 , 但是至今沒有下文:(暫時能夠知道的是 , 加載dll需要manifest,沒有manifest的動態庫即使放在path下也不會加載 。
10、而VCRedist_x86.exe會幫你把manifest和dll放在正確的地方 。
【應用無法正常啟動0xc0000022 應用無法正常啟動0xc0000005】本文到此分享完畢,希望對大家有所幫助 。