2013-04-03 3 views
6

Являются ли динамические библиотеки времени выполнения для Visual C++ (точнее, 2008) частью ОС Windows в настоящее время? Я заметил, что, по крайней мере, на Windows 8 вам больше не нужно отправлять их с вашим приложением или пользователь может установить распространяемый пакет от Microsoft.Являются ли Visual C++ динамические библиотеки времени выполнения частью операционной системы Windows в настоящее время?

Это правда? Если да, для каких версий Windows и для каких версий Visual C++ это относится?

+1

Кстати, если вам нужно распространять небольшое приложение, которое должно выполняться без необходимости устанавливать что-либо, у вас всегда есть возможность связать статически с ЭЛТ. –

+1

Имейте в виду, что то же самое было сказано о VC6 CRT. Если вы хотите оставаться совместимым с будущими версиями Windows, придерживайтесь правил сегодня. Microsoft может время от времени вносить изменения в изменения, но они в основном влияют на программы, которые не соответствовали лучшим практикам для начала. – MSalters

ответ

4

Нет, они никогда не были частью дистрибутива Windows. Развертывание их самостоятельно является сложным требованием.

Это, безусловно, может выглядит, что они есть. Начиная с msvcrt.dll в каталоге system32, он имеет то же имя, что и сценарий времени выполнения C++ в версиях Visual Studio до VS2002 (VS6 и ранее). Это, однако, частная копия ЭЛТ, которая используется исполняемыми файлами Windows. И защищен функцией защиты файловой системы в Windows, предотвращая уничтожение старой установщиком операционной системы.

Это, безусловно, часто срабатывает случайно. Есть много программ, которым требуется Microsoft CRT, поэтому маловероятно, что пользователь запустил программу установки до того, как установил DLL. Ясно, что вы не можете зависеть от этой общей аварии.

Аналогично, для Windows 8 предварительно установленный пакет Microsoft.VCLibs.110 соответствует пакету, который необходим для приложения Store, написанного на C++. Но это по той же причине, что и выше, программы Microsoft Store также были построены с помощью VS2012, как и у вас. Что произойдет в предстоящем VS2013, сейчас немного грязно, мы скоро узнаем.

0

На мой взгляд, ответ был бы как: Да и Нет

  • Да: Более поздние ОС Windows, как правило, поставляются с VC среда выполнения предварительно установленной (наряду с более поздними версиями. NET Framework). Это связано с тем, что Microsoft использует новейшую/новую Visual Studio, прежде чем выпускает VS для публики (или даже для подписчиков MSDN). Если это не так, всякий раз, когда вы устанавливаете какое-либо приложение (устаревшее приложение или какое-то загруженное приложение), установка будет в любом случае установить требуемую среду исполнения VC++. Другой способ - автоматическое обновление.
  • No: Если ни одно из вышеперечисленных правил не применяется. Или, когда среда выполнения VC поставляется с новым пакетом обновления или патчем. Возможно, вы разработали приложение с более новым патчем/SP, которое должно быть установлено (как, например, Side-by-Side).