dll文件加載運(yùn)行加載的14001錯誤,由于應(yīng)用程序配置不正確,應(yīng)用程序未能啟動

最近在處理項(xiàng)目問題的的時(shí)候發(fā)現(xiàn)了這么一個問題,就是我們的程序在調(diào)用第三方提供的dll文件的時(shí)候在一臺機(jī)器上面會報(bào)14001的錯誤,但是在另一臺機(jī)器上面不會。兩臺機(jī)器上面的操作系統(tǒng)是相同的。針對這個問題和這個錯誤碼,查找了很多的相關(guān)資料。
vc錯誤查找的給予的對于14001的錯誤的解釋:由于應(yīng)用程序配置不正確,應(yīng)用程序未能啟動。重新安裝應(yīng)用程序可能會糾正這個問題。
下面是搜集的一些網(wǎng)絡(luò)資料針對這個問題的說明和解決方法個人感覺還是很有參考意義的:
在VS2005下用C++寫的程序,在一臺未安裝VS2005的系統(tǒng)上,
用命令行方式運(yùn)行,提示:
“系統(tǒng)無法執(zhí)行指定的程序”
直接雙擊運(yùn)行,提示:
“由于應(yīng)用程序的配置不正確,應(yīng)用程序未能啟動,重新安裝應(yīng)用程序可能會糾正這個問題”
以前用VC6和VS2003的話, 如果缺少庫文件,是會提示缺少“**.dll”,但是用VS2005卻沒有這樣的提示。
自己實(shí)驗(yàn)了一下,感覺以下幾種解決辦法是可行的:
方法一:
在類似C:\Program Files\Microsoft Visual Studio 8\VC\redi
st\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列文件:
msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest
把這幾個文件拷貝到目標(biāo)機(jī)器上,與運(yùn)行程序同一文件夾或放到system32下,就可以正確運(yùn)行了。
其他release版、MFC程序什么的都是拷redist下相應(yīng)文件夾下的文件就可以了,文件夾后都有標(biāo)識!
方法二:
修改編譯選項(xiàng),將/MD或/MDd 改為 /MT或/MTd,這樣就實(shí)現(xiàn)了對VC運(yùn)行時(shí)庫的靜態(tài)鏈接,在運(yùn)行時(shí)就不再需要VC的dll了。
方法三:
工程-》屬性-》配置屬性-》常規(guī)-》MFC的使用,選擇“在靜態(tài)庫中使用mfc”
這樣生成的exe文件應(yīng)該就可以在其他機(jī)器上跑了。
方法四:
你的vc8安裝盤上找到再分發(fā)包vcredist_xxx.exe和你的程序捆綁安裝。
如果安裝Microsoft Visual C++ 2005 出現(xiàn)如下錯誤↓:
事件查看器顯示:產(chǎn)品: Microsoft Visual C++ 2005 Redistributable -- Error 1935.安裝程序集“Microsoft.VC80.ATL,type="win32",version="8.0.50727.4053",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="x86"”過程中發(fā)生錯誤。請參閱幫助和支持獲取詳細(xì)信息。HRESULT: 0x80070422。程序集接口: IAssemblyCacheItem,功能: Commit,組件: {97F81AF1-0E47-DC99-A01F-C8B3B9A1E18E}
解決方法:啟動 Windows Modules Installer 服務(wù),再安裝。OK,解決。
http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/66bc8cab-c134-49a8-85e5-37ca9efbdeb4/
個人問題解決過程:
1.考慮的是兩個方面:
一個是程序調(diào)用的dll是否提供了所要的方法;
一個是dll所依賴的dll是否完整。
這兩方面都是通過depends工具來查看
2.我的問題是我用的是別人提供的dll文件自己不可以去更改dll文件的生成方式,因此所做的工作就是設(shè)法去導(dǎo)入dll所依賴的dll文件。
(1)配置系統(tǒng)環(huán)境變量的path路徑使dll做可能依賴的系統(tǒng)dll文件能夠找到依賴的dll。
(2)推測第三方所提供的dll開發(fā)時(shí)候應(yīng)該用的是vs2005或者vs2008在或者就是vs2010,然后所提供的dll文件或許就是動態(tài)加載的dll,所以安裝了vcredist_x86的vs2005,vs2008以及vs2010版本的,這個地方的操作對于我解決問題起了作用,但是具體是哪一個這個沒有去確定
(3)為了使自己程序運(yùn)行的環(huán)境沒有必要都去安裝vcredist_x86所以找到vcredist_x86安裝之后對應(yīng)的dll文件和調(diào)用的第三方的dll放在同一個目錄下面,也可以放在C:\WINDOWS\system32但是path路徑中的配置一定要有,一般來說都是會有的。
通過上面的三個方面?zhèn)€人的問題是解決了,當(dāng)然具體到個人的項(xiàng)目里面還有很多的方面要考慮,但就這個dll加載的14001錯誤,上面的解決方法還是ok的。網(wǎng)上的相關(guān)資料還是很多的,希望個人整理的這些對你有小小的幫助。針對vcredist_x86的dll文件以及vs2005,vs2008 和 vs 2010對應(yīng)的exe安裝文件可以搜一下,我也把我搜到的上傳一下,共享。
據(jù)其他網(wǎng)友推薦使用下面的方法
在Win7中運(yùn)行某些軟件時(shí),突然提示出錯信息“應(yīng)用程序無法啟動,因?yàn)閼?yīng)用程序的并行配置不正確。有關(guān)詳細(xì)信息,請參閱應(yīng)用程序事件日志,或使用命令行sxstrace.exe工具。”
查看win7應(yīng)用程序事件日志:計(jì)算機(jī)——>右擊——>管理——>事件查看器——>應(yīng)用程序和服務(wù)日志
出現(xiàn)這個問題是因?yàn)榘惭bwindows7 后,或使用ghost版本安裝后,
所以到微軟官方網(wǎng)站下載:Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)下載:http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=zh-cn
注意:安裝完了后,還需要重啟一下計(jì)算機(jī)。
比較方便的方法直接下載 VC Redist Installer

VC Redist Installer(vc運(yùn)行庫) V1.6 英文免費(fèi)安裝版
- 類型:系統(tǒng)其它
- 大?。?/span>47.7MB
- 語言:簡體中文
- 時(shí)間:2017-06-17
由于應(yīng)用程序配置不正確,應(yīng)用程序未能啟動等綠色軟件不能打開,一般都是缺少必要的vc運(yùn)行庫。
VC Redist Installer由國外網(wǎng)友McRip制作,匯集VC2005、VC2008、VC2010、VC2012、VC2013運(yùn)行庫,包含32及64位版本,安裝自動判斷。這些運(yùn)行庫都采用Visual Studio 20XX編寫的軟件必須使用公用DLL運(yùn)行庫。網(wǎng)上某些精簡軟件沒有附帶這些公用DLL,會導(dǎo)致這些綠化軟件沒法正常運(yùn)行,出現(xiàn)“應(yīng)用配置不正確”錯誤或者缺少msvcp71.dll、msvcr71.dll錯誤,安裝對應(yīng)VC庫即可解決,這是最全最新的VC運(yùn)行庫的集合,安裝完本庫以后再使用綠色軟件、游戲就不會再出這個錯了。
VC++運(yùn)行庫有什么用?
我們?yōu)槭裁匆褂盟渴裁磿r(shí)候需要它?太深奧的理論就不多說了,舉個簡單的例子,我們從網(wǎng)上下載來一些綠色精簡軟件或個人軟件作品或某些游戲,運(yùn)行的時(shí)候發(fā)現(xiàn)報(bào)錯,常見的有:缺少或丟失msvcp71.dll、msvcr71.dll、msvcrt.dll、msvcrt.dll等;無法啟動此程序,因?yàn)橛?jì)算機(jī)中丟失 mfc*.dll。嘗試重新安裝該程序以解決此問題。因?yàn)檫@些軟件是用采用Microsoft Visual Studio編寫的,它們運(yùn)行的過程中必須使用公用的DLL運(yùn)行庫,即上在所說的VC運(yùn)行庫。
了解了原因之后,解決方法也就明白了,有兩種途徑:一是安裝Microsoft Visual C++運(yùn)行庫集成包;二是去網(wǎng)上尋找對應(yīng)版本的VC運(yùn)行庫DLL文件,然后再手動復(fù)制到系統(tǒng)目錄里。前者肯定不行,那軟件太龐大了,沒有必要為了幾個運(yùn)行庫文件去下載上G的文件。后者太麻煩了,要去網(wǎng)上尋找,下載后還要自己手動導(dǎo)入,而且32位和64位系統(tǒng)的導(dǎo)入目錄是不同的。
vc運(yùn)行庫包含組件:
現(xiàn)在好了,有了VC Redist Installer,一切就變得簡單了,它內(nèi)置了全部的VC運(yùn)行庫DLL文件,其組件包括:
匯聚以下組件庫:
- Visual C++ 2005 x86;
- Visual C++ 2005 x64;
- Visual C++ 2008 x86 9.0.30729.7523;
- Visual C++ 2008 x64 9.0.30729.7523;
- Visual C++ 2010 x86 10.0.40219.455;
- Visual C++ 2010 x64 10.0.40219.447;
- Visual C++ 2012 x86 11.0.60830.0;
- Visual C++ 2012 x64 11.0.60830.0;
- Visual C++ 2013 x86 12.0.21005.1;
- Visual C++ 2013 x64 12.0.21005.1;
- Microsoft Visual F Runtime 2.0;
- Older Microsoft Runtimes for older software;
注意/幫助:安裝過程可以自行選擇,并不是要全部安裝,在Windows 7下做了測試,全部安裝的話時(shí)間比較長。需要說明的是如果沒有開啟Administrator超級用戶則需要右鍵“以管理員身份”運(yùn)行該軟件并執(zhí)行安裝!同時(shí),鑒于第三方軟件可能會誤報(bào),實(shí)屬正常,總之,放心使用即可!
相關(guān)文章
- 當(dāng)遇到USB接口驅(qū)動異常時(shí),可以通過多種方法來解決,其中主要就包括重裝USB控制器、禁用USB選擇性暫停設(shè)置、更新或安裝新的主板驅(qū)動等2025-04-23
解除U盤有寫保護(hù)的方法(詳細(xì)步驟與解決方案)
在日常使用U盤的過程中,許多用戶可能會遇到U盤突然無法寫入數(shù)據(jù)的問題,這通常是由于U盤被寫保護(hù)所致,寫保護(hù)功能雖然可以防止數(shù)據(jù)被意外修改或刪除,但在需要寫入新數(shù)據(jù)時(shí)2024-12-14- 最近配置了服務(wù)器,并做了磁盤陣列,突然有一天硬盤找不到了,然后重新陣列找回,但在磁盤管理器中發(fā)現(xiàn)雖然可以看到分區(qū)了,但提醒硬盤是只讀模式無法寫入文件,參考如下方2024-12-14
- 電腦是現(xiàn)代人生活中不可缺少的工具,但有時(shí)候我們會遇到電腦開機(jī)失敗的情況,這時(shí)候我們應(yīng)該怎么辦呢?本文將從多個方面為大家介紹解決辦法2024-10-26
電腦藍(lán)屏代碼memory_management怎么解決? 系統(tǒng)藍(lán)屏原因
電腦突然藍(lán)屏,顯示memory management,上來就被這串英文鎮(zhèn)住了,藍(lán)屏memory management是什么?為什么會出現(xiàn)藍(lán)屏memory management呢?,詳細(xì)請看下文介紹2024-08-01如何解決wpcap.dll丟失? 電腦wpcap.dll文件破損的修復(fù)方法
如果文件wpcap.dll丟失有什么辦法可以解決,出現(xiàn)wpcap.dll丟失的的原因又是因?yàn)槭裁茨兀拷裉炀痛蠹伊私庖幌聎pcap.dll文件,希望能夠你給在解決wpcap.dll文件的問題上有所幫2024-08-01pasmutility.dll缺失怎么辦? 電腦pasmutility.dll丟失的修復(fù)技巧
如果你在打開某些程序或者游戲時(shí)遇到了“缺失pasmutility.dll”的錯誤提示,不要驚慌,這是一個非常普遍的問題,下面我們就來看看詳細(xì)的教程2024-08-01svcapicall.dll丟失怎么解決? 電腦提示svcapicall.dll文件損壞的修復(fù)技
在使用電腦的過程中,有時(shí)會遇到各種各樣的問題,其中之一就是dll文件丟失的情況,特別是當(dāng)出現(xiàn)svcapicall.dll丟失的問題時(shí),很多人可能會束手無策,,下面我們就來看看這個2024-07-30ser32.dll丟失怎么辦? 電腦提示ser32.dll文件丟失破損的修復(fù)方法
如果出現(xiàn)user32.dll丟失的情況,可能會影響操作系統(tǒng)的正常運(yùn)行,今天這篇文章本文將介紹電腦缺失user32.dll丟失的解決辦法,詳細(xì)說明解決步驟2024-07-30msstdfmt.dll文件損壞丟失怎么辦? 快速的修復(fù)msstdfmt.dll丟失的方法
你是否曾經(jīng)碰到過弄丟msstdfmt.dll文件的情況呢?如果你遇到此問題,不必驚慌,在本文中,將為您介紹幾種修復(fù)msstdfmt.dll文件的方法,幫助您解決這一問題2025-03-20