因此,我最近完成了一個我一直在研究的VC++控制檯應用程序,並將它發送給我的一個朋友嘗試,但他甚至不能打開它,因爲他一直在收到錯誤。當試圖運行程序時出現錯誤的圖像錯誤
一個對話框將打開了標題壞 - 圖片,然後它顯示的錯誤之類的東西,它說,它無法找到該文件MSVCP140D.dll
我朋友的電腦上,但是當我啓動該程序運行良好。
誰能告訴我爲什麼他不能播放該程序,以及如何解決它?
因此,我最近完成了一個我一直在研究的VC++控制檯應用程序,並將它發送給我的一個朋友嘗試,但他甚至不能打開它,因爲他一直在收到錯誤。當試圖運行程序時出現錯誤的圖像錯誤
一個對話框將打開了標題壞 - 圖片,然後它顯示的錯誤之類的東西,它說,它無法找到該文件MSVCP140D.dll
我朋友的電腦上,但是當我啓動該程序運行良好。
誰能告訴我爲什麼他不能播放該程序,以及如何解決它?
您已經在調試模式下構建了您的項目,並且您正在使用Multi-threaded Debug DLL (/MDd)
RunTime庫。
Multi-threaded Debug (/MTd)
和重建項目。或者你可以建立在Release模式項目,然後選擇Multi-threaded (/MT)
運行庫。
這將使獨立的可執行文件使用標準的Windows庫,您將不必提供額外的dll與* .exe文件。
您需要使用Microsoft Visual C++ Redistributable軟件包提供程序。那是MSVCP140D.dll
。
由於user4581301
指出,D
在MSVCP140D.dll
的意思是'調試'。 您不應該發佈啓用調試的可執行文件。它使逆向工程,黑客攻擊和其他修改更容易。 您應該編譯發佈版本,並將其與可再發行版一起發貨。
那麼你需要做一件事情(簡單的解決方案),你只要去你的system32
目錄在你已經建立的代碼系統,並找出文件MSVCP140D.dll
,把它與你的可執行文件(.exe)並給它給你的朋友,並告訴他保持與exe文件在同一個文件夾。
MSVCP140D.dll
(可再發行組件包)是您需要爲運行應用程序提供的運行時依賴項之一。
現在它會被安裝。或者你可以在目標系統上覆制dll在system32
然後嘗試。
但是你不應該提供debug
版本,如果你給它的客戶端,你應該提供它的發佈版本。
關閉。在MSVCP140D.dll中,D表示OP正在編譯一個調試版本。 OP需要編譯和發佈發佈版本以及可能的reditsributable軟件包。 – user4581301