В чем разница между BT / MD и / MDD в VisualStudio C ++? - PullRequest
5 голосов
/ 29 мая 2009

В чем разница между www / MD и / MDD (многопоточной отладочной dll) в c / c ++ -> генерация кода

Проперти визуальной студии ....

Ответы [ 4 ]

6 голосов
/ 29 мая 2009

Они указывают, какое время выполнения использовать. Оба используют многопоточные динамические среды выполнения (DLL), но версия / MDD использует версию отладки и также определяет символ _DEBUG для вас. Подробнее см. на этой странице MSDN .

3 голосов
/ 29 мая 2009

Отладочная версия (MDD) позволяет входить в библиотеки C и C ++ во время отладки. Есть дополнительные проверки для неправильных операций кучи и утечек памяти. Наличие зависимостей (например, DLL) от версии выпуска и отладки может привести к проблемам, поэтому рекомендуется придерживаться / MDD для версии отладки и / MD для версий выпуска.

В Visual Studio 2005/2008, если ваше приложение использует / MDD, но зависит от библиотек DLL, созданных с помощью библиотек выпусков, вам также необходимо включить манифест для библиотек выпусков в настройках проекта.

0 голосов
/ 08 октября 2016

Если вы компилируете с / MDd в VS 2012, вы получите следующую зависимость: MSVCP110D.dll.

При установке распространяемого пакета Visual C ++ эта библиотека DLL не предоставляется. Поэтому, если вы хотите распространять исполняемый файл, на целевом компьютере должна быть установлена ​​Visual Studio.

Компиляция с / MD, с другой стороны, даст зависимость от MSVCP110.dll, которая является установленной с распространяемым пакетом VS.

Поправь меня, если я ошибаюсь ..

0 голосов
/ 29 мая 2009

Программы, связанные с / MDd, вероятно, не будут работать на большинстве пользовательских машин, поскольку на них вряд ли будут установлены отладочные версии стандартных библиотек

...