應用程序無法正常啟動0xc0150002 解決方式


 
  我也遇到過此問題,解決的方法:

方案一: 在項目的“屬性|配置屬性|鏈接器|常規”中的“啟用增量鏈接”選擇“否”。此方法阻斷了問題產生的源頭,其每次生成exe文件時都直接嵌入清單文件,而不是默認的依據時戳而決定是否更新清單文件。

方案二:不嵌入清單文件。在項目的“屬性|配置屬性|清單工具|輸入和輸出”中的“嵌入清單”選擇“否”,從而在生成exe文件時附隨生成一個清單文件(默認情況下,其文件名稱為exe文件的全名加上“.manifest”),避免了嵌入清單文件可能失敗的問題。

 ,謝謝!

 

 

近期做一個項目寫了一個VC6下的MFC程序,結果傳到別人的機子上(WIN7)出現了應用程序正常初始化(0xc0150002)失敗的問題,當時還以為就是WIN7的問題,后來把程序復制到一台WINXP SP3的程序下還是不行。

    為什么我的機子上能夠,而別人的機子上執行不了呢?

    開始google一下,找到了解決的一個辦法——在程序執行出錯的時候,右鍵“我的電腦”,然后點擊“管理”,再點擊“事件查看器",最后看下“系統”,信息例如以下:

    (1)找不到附屬匯編 Microsoft.VC80.DebugCRT,上一個錯誤是 參照的匯編沒有安裝在系統上。

    (2)Resolve Partial Assembly 為 Microsoft.VC80.DebugCRT 失敗。 參考錯誤消息: 參照的匯編沒有安裝在系統上。
    (3)Generate Activation Context 為 C:/scanfile/Debug/libclamavd.dll 失敗。 參考錯誤消息: 操作成功完畢。
    能夠推斷是libclamavd載入的時候出了點問題了,看了下它的manifest文件,其依賴庫是Microsoft.VC80.DebugCRT ,這樣問題就非常明顯了,這個dll是在VS2005下編譯的,而別人的機子上沒有這個環境, 我們所編譯生成的應用程序因為缺少必需的Debug版本號的VC執行庫而錯誤發生。
    解決方法:到我的機子上的vs2005的安裝文件夾下,搜索名字中包括串Microsoft.VC80.DebugCRT的文件,共同擁有3個dll文件(msvcm80d.dll,msvcp80d.dll,msvcr80d.dll)和一個manifest文件(Microsoft.VC80.DebugCRT.manifest),復制到別人機子上的project可運行文件文件夾下,問題就攻克了。
    從這個問題能夠發現幾點:
    (1)善用工具能夠幫助定位問題:事件查看器,depends walker等
    (2)搜索效率,比方這個問題直接搜 ”應用程序正常初始化失敗 0xc0150002“肯定會得到非常多噪音信息。。。
     PS:網上的解決的方法還有就是說下載 vcredist_x86,我試了下不大好使。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM