2017年3月22日 星期三

(C/C++) MSVCR DLL 遺失問題

【錯誤訊息】:無法啟動程式,因為你的電腦遺失 MSVCR100.dll。請嘗試重新安裝以修正這個問題。(The program can't start because MSVCR100.dll is missing from your computer. Try to installing the program to fix this problem.

【修正方法】:安裝 VC++ 2010 可轉散發套件(Visual C++ 2010 Redistributable Package

【補充說明】:假如它顯示「…遺失 MSVCR100D.dll。…」,表示這個應用程式是 Debug 版也就是「除錯版本」,意思是這個版本的應用程式是給程式設計人員除錯用的,「冤有頭,債有主」,只能要求程式的作者重新發佈 Release 的版本。可轉散發套件不支援除錯版本的應用程式,它不含 MSVCRxxxD.dll 這個除錯用的動態連結函式庫(DLL)

【圖示】:下圖以 Visual Studio 2010 為範例


【版本對應】:
  • 遺失 MSVCR100.dll → 安裝 VC++ 2010 可轉散發套件
  • 遺失 MSVCR120.dll → 安裝 VC++ 2013 可轉散發套件
  • 遺失 MSVCR140.dll → 安裝 VC++ 2015 可轉散發套件
  • 遺失 MSVCR150.dll → 安裝 VC++ 2017 可轉散發套件
  • 注意!以上遺失的 dll 只能對應它各自的可轉散發套件,新版的可轉散發套件無法使舊版應用程式執行;再者,64 位元(x64)與 32 位元(x86)兩者的應用程式與可轉散發套件無法相互適用。