1. 程式人生 > >在win7上編寫的MFC程式,在win10上執行出現0xc000007b的錯誤

在win7上編寫的MFC程式,在win10上執行出現0xc000007b的錯誤

解決方案:

原先用  C:\Windows\System32 路徑下的2個dll,複製出來與編寫好的EXE放在同一個資料夾,系統不報缺失dll了,但是報0xc000007b的錯誤,嘗試了網上的各種辦法(網上的回答的一些吊毛不少是複製貼上的),沒有一點卵用。後來在同事win10的電腦上試,他的電腦能執行,但另一個同事也是win10的,卻不能執行,這2臺電腦最主要的區別就是能執行的電腦裝了個VS2013的開發環境,另一臺沒裝,那麼方向又明確了一點,是由於VS2013安裝附帶了一些不知道的包或者dll,但這些dll我並不知道在哪,也不知道具體用途,也相當於大海撈針。後來查了下,有個depends的工具,這個工具之前我也用過就下載了一個,比對了下在正常執行電腦上的結果,發現win10上幾百個報錯,說是缺失幾百個DLL,我特麼心累啊,難不成我一個一個找對應的DLL,再更換嗎,這很明顯不現實的。後來發現,這幾個DLL總共又整合在6個DLL裡面,然後我就網上下載更換了這6個DLL,結果,,,還是沒卵用。後來又看depends,發下我呼叫的2個DLL,mfc120ud.dll,msvcr120d.dll,顯示的是“AMD64”,其他的DLL顯示的32,這個就奇怪了,win10是64位的,我用64位的沒毛病啊,為啥在這邊卻顯示紅色了,32的反而正常,於是我就再次把 C:\Windows\System32 裡面找到這2個DLL,然後放在EXE的資料夾裡,,,,還是不行。我實在是沒辦法了,期間又安裝了個微軟MFC的執行庫,還是解決不了,,,習慣了失敗後,一個隨意的操作解決了問題,,,

反正C:\Windows\System32 裡面的DLL是不行了,要不試試64位下的DLL?把開發電腦win7 C:\Windows\SysWOW64 資料夾裡面的這2個DLL拿出來後,丟到win10,存放EXE的資料夾裡,踏馬的,終於能運行了。

總結:腦子裡一直有個固執的看法,認為64位的會相容32位的,簡單點就是認為32位上能執行的,64肯定能,64能執行的,32不一定行,,,,這種想法是特麼錯誤的啊。所以以後開發的程式,要放在其他win8或者win10上使用時,先看對方是32位還是64位,不用的位數對應不同資料夾下的DLL。

題外話:

本人程式設計彩筆一枚,基礎不紮實,工作前三年浪費了不少時間,也很難靜下心來寫程式,基本上是拿來主義者,遇到啥問題都是網上找資源,然後修修改改,幸虧人際不錯,有了問題自己搞不定,求助認識的人,大家都挺願意幫忙的。現在感覺,很多問題還是要自己解,因為自己遇到過的問題前輩不一定正好遇到,總是需要自己分析的,然後把分析解決的過程記錄下來,供以後自己或者別人參考,都是挺好的,也算是給抄了這幾年網際網路資源的一丁點回饋吧!