2009-05-29 45 views

回答

6

他們指定要使用的運行時。兩者都使用多線程動態(DLL)運行時,但/ MDD版本使用調試版本,並且還爲您定義了_DEBUG符號。詳情請參閱this MSDN page

+0

所以沒有什麼不同的充使用任何一個(正確?) – Cute 2009-05-29 08:20:35

3

調試版本(MDD)允許您在調試期間進入C和C++庫。還有對堆不正確操作和內存泄漏的額外檢查。對發佈版本和調試版本具有依賴關係(例如DLL)可能會導致問題,因此建議您堅持使用/ MDD作爲調試版本和/ MD作爲發佈版本。

對於Visual Studio 2005/2008,如果您的應用程序使用/ MDD,但依賴於使用發佈庫構建的DLL,則還需要在發佈項目設置中包含發佈庫清單。

0

與/ MDd鏈接的程序可能不會在大多數用戶機器上運行,因爲標準庫的調試版本不太可能安裝在它們上。

0

如果在VS 2012中使用/ MDd進行編譯,則會出現以下依賴項:MSVCP110D.dll。

Visual C++可再發行組件包安裝不會提供此DLL。所以如果你想分發可執行文件,目標機器必須安裝Visual Studio。

另一方面,使用/ MD進行編譯將依賴MSVCP110.dll,其中與VS Redistributable Package一起安裝。

糾正我,如果我錯了..