天天看點

無法啟動此程式,計算機丢失MSVCP110D.dll 解決方案

場景

VS2012編譯的動态庫,拷貝到安裝VS05的機器上,調用的過程中出錯如下:

無法啟動此程式,計算機丢失MSVCP110D.dll。嘗試重新安裝該程式以解決此問題

環境

VS2012和VS2005中項目屬性,C/C++頁籤下代碼生成>運作時庫:多線程調試DLL(MDd)預設的調試版本會指定該運作庫配置,減少dll的體積

解析

出錯原因是編譯動态庫的時候,運作時庫選擇了多線程調試DLL(MDd),程式運作時,缺少了MSVCP110D.dll運作時庫。VS05攜帶的運作時庫是msvcr80.dll,在不同的編譯器環境下,編譯出來的dll,會依賴不同版本的運作時庫,主要是VS不同的版本使用的VC庫是不一樣的

補充

M後面的T或者是D,實際上分别代表了靜态庫static,動态庫dymanic

當修改動态庫項目的運作時庫為MT或者MTd,其他項目進行引用的時候(該項目也必須設定成相同的運作時庫),這樣子編譯出來的程式,隻會依賴作業系統中的核心dll元件(kernel32.dll,

gdi32.dll,shell32.dll),拷貝到同一個版本的系統,即使沒有安裝VS也可以正常運作

    本文轉自fengyuzaitu 51CTO部落格,原文連結:http://blog.51cto.com/fengyuzaitu/1730913,如需轉載請自行聯系原作者

繼續閱讀