Windows всегда поставляется со старой версией MSVCRT на основе barebone, в частности, чтобы драйверы могли иметь базовую поддержку во время выполнения без необходимости отправлять свои собственные копии библиотеки. Он подходит для драйверов, но не для приложений с более высоким уровнем пользовательского режима.
Каждая версия VS C++ поставляется с более новыми версиями библиотек времени исполнения, поскольку стандарты библиотек (и поддержка стандартов) развиваются. Иногда они развиваются таким образом, что они не поддерживают обратную совместимость, поэтому вы не можете гарантировать, что более старая программа, составленная из более старой версии DLL, будет работать с более новой версией библиотеки DLL. Из-за того, что файлы явно версируются, большая часть так называемой проблемы DLL Hell устранена. (DLL Hell действительно является проблемой только в том случае, если вы делаете плохие предположения и разрабатываете плохие инсталляторы, особенно в настоящее время с бок о бок версиями, слиянием модулей и т. Д.)
Приложения должны перераспределять копии какой бы версии они ни требовали, поскольку нет никакой гарантии, что библиотеки, от которых они зависят, будут существовать на компьютере.
И, пожалуйста, когда вы спускаете вниз, не могли бы вы объяснить почему? (У меня -2 без причины!?) – Stef