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

來源:互聯網
上載者:User

應用程式無法正常啟動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,我試了下不大好使。。。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.