应用程序无法正常启动(0xc000007b)解决
注:本文對0xc000007b的問題本質(zhì)進行了說明,可以說對網(wǎng)上雜七雜八的聲音做了一個統(tǒng)一。
問題情景:
vs2013 寫的一個64位的exe程序,release后帶著來自系統(tǒng)目錄C:\Windows\SysWOW64\msvcr120.dll 到一個沒有runtime的win7環(huán)境去運行,沒有用到MFC,所以帶著這個msvcr120.dll就足夠了
但是拷貝過去后一運行就出現(xiàn)如下對話框:
首先懷疑msvcr120.dll還不夠,于是也拷貝了msvcp120.dll和vccorlib120.dll,問題依舊
其次,搜索了網(wǎng)絡上其他人碰到的錯誤,做了:
1、說缺乏dx9,于是用dxdiag命令打開看,發(fā)現(xiàn)系統(tǒng)是有dx11的,根據(jù)向下兼容,不可能缺乏dx9
為了驗證,我特地重裝了dx8到本機,問題依舊,所以說dx9缺乏的都是比較坑爹的,因為目前的window都是默認支持dx,更不用說dx9這么老的東西了
2、說缺乏vc環(huán)境,這個我已經(jīng)做了,沒有缺乏
最后查到的原因所在,出乎你們的想象:SysWOW64目錄下的dll并非確保是64位的,實際上我從這里拷貝出來的msvcr120.dll是32位的。
那么到哪里去找真正的64位的dll呢?在這里 vs2013安裝目錄\VC\redist\x64,這里有正統(tǒng)的dll
此外,原則上x86的也應該從該處的x86目錄拷貝,畢竟這是才是面向分發(fā)的。
更換msvcr120.dll后,問題排除。
總結(jié):
1、出現(xiàn)0xc000007b——應用程序無法正常啟動
其根本原因是缺乏所需要的DLL,提供了錯誤版本的dll相當于沒有DLL, 提示完全一樣
2、網(wǎng)上有人說缺乏dx運行環(huán)境,如果屬實,也是因為缺乏dx相關(guān)的dll
所以根本原因,在低一點
3、與程序是32還是64位沒有直接關(guān)系,但是與你的程序?qū)簧系膁ll版本,往往很難發(fā)現(xiàn)問題,要引起注意
4、網(wǎng)上的資料,太粗糙了,流于表面,大家要有分辨能力。
5、發(fā)布的時候,需要vc或mfc環(huán)境,到你的開發(fā)工具的目錄的redist目錄去找就可以,取系統(tǒng)目錄找就不對了
所以,以后碰到這個錯誤,就不需要茫然了,肯定是缺乏dll或者dll版本不對。
以上為轉(zhuǎn)發(fā),下面是我的問題解決過程(去除踩坑過程):
我運行一個自己寫的上位機軟件,兩臺電腦,其中一臺正常運行,另一臺報錯缺失msvcp120.dll,于是網(wǎng)上下載了一個放在路徑C:/Windows/system32下,接下來報錯0xc000007b,本來以為是一個新的錯誤,在網(wǎng)上查了一通,沒有解決。
由上面發(fā)現(xiàn)可能是msvcp120.dll文件有問題,所以在好的電腦C:/Windows/system32路徑下,把msvcp120.dll文件拷貝過來,同時也把路徑C:/Windows/sysWOW64路徑下的msvcp120.dll拷貝過來。問題解決。
總結(jié)
以上是生活随笔為你收集整理的应用程序无法正常启动(0xc000007b)解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: p5绘图板
- 下一篇: 翻译Houdini官方文档:PDG/TO