當前位置:
首頁 > 知識 > 應用程序無法正常啟動0xc0150002解決方案

應用程序無法正常啟動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),拷貝到別人機子上的工程可執行文件目錄下,問題就解決了。

從這個問題可以發現幾點:

(1)善用工具可以幫助定位問題:事件查看器,depends walker等

(2)搜索效率,比如這個問題直接搜 」應用程序正常初始化失敗 0xc0150002「肯定會得到很多噪音信息。。。

PS:網上的解決辦法還有就是說下載vcredist_x86,我試了下不大好使。

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

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

druid中 如何從本地批(batch)導入與從hdfs 批導入數據 實戰
JSP和Servlet初級知識點總結

TAG:程序員小新人學習 |