1. 程式人生 > 實用技巧 >The application was unable to start correctly (0xc000007b)的勉強解決方案

The application was unable to start correctly (0xc000007b)的勉強解決方案

在我的電腦上,Unity 3D和有道詞典的安裝包(UnitySetup64.exe和YoudaoDictSetup.exe),啟動時報錯“The application was unable to start correctly (0xc000007b). Click OK to close the application.”而UltraISO可以正常安裝,可安裝後無法啟動,報錯的文字一樣,但錯誤程式碼變成了0xc0000005.

網上搜索這個報錯內容,基本都是說要安裝Microsoft Visual C++ 20XX Redistributable(下載地址https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads),但我已經裝齊了2005,2008,2010,2012,2013,2015-2019,而且也都卸掉重灌過,並不能解決問題。

現在,讓我們從另外一個角度來看這個問題,嘗試直接用解壓軟體(比如7-zip)開啟UnitySetup64.exe和YoudaoDictSetup.exe。運氣不錯,可以正常開啟,檢視壓縮包的屬性,可以看到“NSIS”。如果你電腦上常備Exeinfo PE(最大可掃描96MB的檔案),可以用來掃一掃YoudaoDictSetup.exe,也能發現NSIS。

NSIS (Nullsoft Scriptable Install System)是一個專業的用於建立Windows安裝程式的開源系統,官網是https://nsis.sourceforge.io。既然解壓軟體能直接開啟NSIS製作的exe,那麼再大膽猜測一下,直接把UnitySetup64.exe和YoudaoDictSetup.exe解壓縮,會不會就可以用了呢?結論是:可以!

UnitySetup64.exe解壓後,在Editor資料夾中找到Unity.exe並啟動它,結果報錯:Sentinel key not found(H0007),不過,至少跟剛才的0xc000007b是明顯不同的錯誤型別了,搜一下Sentinel key可以找到這篇部落格(https://blog.csdn.net/alexhu2010q/article/details/101367845),解決方法就是刪除C:\ProgramData\SafeNet Sentinel資料夾,ProgramData資料夾預設是隱藏的,在win10的資源管理器上面的“檢視”選項卡,勾選“隱藏的專案”,就能看見。然後啟動cmd,把路徑切換到UnitySetup64.exe解壓後的Editor資料夾,執行“hasp_update.exe u unity-sl.v2c”,再下載一個UnityHub就可以啟動Unity了。hasp_update.exe和unity-sl.v2c都在Editor資料夾中,若不切換路徑就會報錯:'hasp_update.exe' 不是內部或外部命令,也不是可執行的程式或批處理檔案。 YoudaoDictSetup.exe解壓後,進入$PLUGINSDIR資料夾,裡面有一個名為dict.7z的壓縮包,再次解壓,解壓後可看到YodaoDict.exe和YoudaoDict.exe,點兩者任何一個都能啟動有道了。這裡順便鄙視一下網易公司,他們給有道的exe檔案加的數字簽名,用的竟然還是MD5這個早在2005年就被嚴格證明不安全的演算法,難道貴公司的程式設計師都是60歲的大爺?這種跟不上時代的程式設計師或者管理層還是去養豬比較合適。
直接解壓的方法並不適用於UltraISO,還是無法啟動它。