應用程序正常初始化(0xc015002)失敗解決方法

VS2005 sidebyside manifest error Microsoft.VC80.MFC Microsoft.VC80.CRT Microsoft.VC80.MFCLOC msvcr80.dll mfc80.dll eventlog VC2005 編譯出來的程序文件,採用了manifest方式來指定dll文件。對於win98、win2000系統,把exe文件和VC的 dll連接庫放到一起就 成了。對於winxp、win2003系統就要麻煩的多了,VC的連接庫默認是被放到了winsxs目錄下,結果造成在這些系統上,直接拷貝exe文件, 往往是不能運行(找不到msvcr80.dll、mfc80.dll文件等),或者在事件日誌中報錯。 解決方式: 方式一、在目標系統上安裝2005版vcredist_x86.exe。 方式二、直接拷貝VS8目錄下的VC / redist / x86 / 目錄下的 Microsoft.VC80.MFC、Microsoft.VC80.CRT、Microsoft.VC80.MFCLOC幾個文件夾,到exe所在的目錄下,目錄結構如下: ./myapp.exe ./myapp.dll ./Microsoft.VC80.CRT/ ./Microsoft.VC80.MFC/ ./Microsoft.VC80.MFC/Microsoft.VC80.MFCLOC/ 然後修改Microsoft.VC80.MFCLOC目錄下的Microsoft.VC80.MFCLOC.manifest文件,將其中的version=“8.0.50727.42“,修改爲version=“8.0.50608.0“。 方式二的目錄結構,在xp和2003下是沒有問題的,但是在win98/win2000中,因爲exe和dll不在同一目錄下,就會出現找不到dll的問題。 有什麼更好的解決呢?呵呵,國外的一個大牛(http://blog.kalmbachnet.de)找到一絕招: 方式三、 1、首先編譯myapp.exe的時候,在配置中,選擇生成單獨的manifest文件,如:myapp.exe.manifest。 2、將myapp.exe、myapp.exe.manifest拷貝到一個目錄下 3、將Microsoft.VC80.MFC、Microsoft.VC80.CRT、Microsoft.VC80.MFCLOC幾個目錄下的文件,都拷貝到myapp.exe所在的目錄下。 4、將Microsoft.VC80.MFCLOC.manifest文件中的version=“8.0.50727.42“,修改爲version=“8.0.50608.0“。 5、編輯myapp.exe目錄下的所有 .manifest文件,將文件中的publicKey鍵值刪除,一般是publicKeyToken=“1fc8b3b9a1e18e3b“ 6、然後運行myapp.exe看看。
發佈了27 篇原創文章 · 獲贊 3 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章