2016-09-28 84 views
2

因此,我最近完成了一個我一直在研究的VC++控制檯應用程序,並將它發送給我的一個朋友嘗試,但他甚至不能打開它,因爲他一直在收到錯誤。當試圖運行程序時出現錯誤的圖像錯誤

一個對話框將打開了標題壞 - 圖片,然後它顯示的錯誤之類的東西,它說,它無法找到該文件MSVCP140D.dll我朋友的電腦上,但是當我啓動該程序運行良好。

誰能告訴我爲什麼他不能播放該程序,以及如何解決它?

回答

3

您已經在調試模式下構建了您的項目,並且您正在使用Multi-threaded Debug DLL (/MDd) RunTime庫。

  • 在Visual Studio主菜單中,選擇項目 - >屬性
  • 進入 「配置屬性」 - > C/C++ - >代碼生成
  • 在運行時庫中,選擇Multi-threaded Debug (/MTd)和重建項目。

或者你可以建立在Release模式項目,然後選擇Multi-threaded (/MT)運行庫。

這將使獨立的可執行文件使用標準的Windows庫,您將不必提供額外的dll與* .exe文件。

2

您需要使用Microsoft Visual C++ Redistributable軟件包提供程序。那是MSVCP140D.dll

由於user4581301指出,DMSVCP140D.dll的意思是'調試'。 您不應該發佈啓用調試的可執行文件。它使逆向工程,黑客攻擊和其他修改更容易。 您應該編譯發佈版本,並將其與可再發行版一起發貨。

+1

關閉。在MSVCP140D.dll中,D表示OP正在編譯一個調試版本。 OP需要編譯和發佈發佈版本以及可能的reditsributable軟件包。 – user4581301

0

那麼你需要做一件事情(簡單的解決方案),你只要去你的system32目錄在你已經建立的代碼系統,並找出文件MSVCP140D.dll,把它與你的可執行文件(.exe)並給它給你的朋友,並告訴他保持與exe文件在同一個文件夾。

MSVCP140D.dll(可再發行組件包)是您需要爲運行應用程序提供的運行時依賴項之一。

現在它會被安裝。或者你可以在目標系統上覆制dll在system32然後嘗試。

但是你不應該提供debug版本,如果你給它的客戶端,你應該提供它的發佈版本。

相關問題