У меня есть решение в VS 2008, которое создает DLL. Затем я использую эту DLL в другом приложении. Если я захожу на страницы свойств проектов DLL и изменяю следующую конфигурацию для сборки DEBUG, то встроенный dll больше не обеспечивает желаемой функциональности. Если я верну его обратно и перестрою библиотеку DLL, то библиотека DLL предоставит правильную функциональность:
Страницы свойств => Свойства конфигурации => C / C ++ => Генерация кода => Библиотека времени выполнения
Если установлено значение «Многопоточная отладочная DLL (/ MDd)»
тогда все работает как надо. Я получаю правильную функциональность из DLL
Если установлено значение «Многопоточная DLL (/ MD)» * , то DLL не работает должным образом ... никаких ошибок во время выполнения или чего-либо еще, просто не работает (Предполагается, что DLL нарисует несколько линий на карте, но не в этом режиме).
Таким образом, вопрос в том, почему использование флага / MDd приводит к исправлению функциональности базового кода, в то время как / MD приводит к неправильной функциональности?
Немного предыстории ... кто-то еще разработал DLL на C ++, и я использую эту DLL в приложении VB.net.