Msi to redistribute ms vs2005 crt libraries что это за программа

Обновлено: 03.07.2024

Не могу найти подробную информацию о том, что такое CRT и зачем она нужна.
Чтобы было проще и больше конкретики ограничимся Виндой И компилятором языка Си, что стоит в студии.
Как я понимаю из уже прочитанной информации CRT- библиотека, которая неявно компилируется линкуется вместе с почти любой программой. Нужна она для того чтобы поддерживать программу, во время выполнения.
Какая то прослойка системных вызовов. И я совершенно не понимаю зачем это нужно. Зачем нужна эта прослойка ?
Почему компилятор просто не преобразовывает функции программы вроде malloc и fopen в системные вызовы, зачем нужна какая то прослойка, которую еще и таскать с собой надо, которая еще и не динамическая.
Еще я слышал, что можно даже вроде как написать свою CRT для программы, если сильно захочется. Как это сделать и как это работает ?
Было бы интересно посмотреть на конкретную реализацию CRT что стоит в студии. Или в Gcc, где ее искать ?

Нужна ли подобная библиотека времени выполнения программам написанным на ASM ?
Например скомпилированных MASM.

Ну в гугле в википедии что ли забанили? CRT/RTL.

Для ассемблера такого не надо, там всё делаешь руками, сам, под каждый процессор и под каждую OS. А язык C и является переносимым по большей части как раз из-за наличия CRT. malloc и fopen в языке C везде одинаковы, но всегда разные для конкретной OS .

Свою CRT написать можно, но это требуется довольно редко и для весьма конкретных и специфических случаев.

Если интересно посмотреть на конкретную реализацию CRT что стоит в студии, то она поставляется вместе со студией в виде исходных текстов, хоть обсмотрись.

Нет, не забанили. Я там почти ничего не понял, слишком мало информации, слишком непонятно. Так же как и на других ресурсах англо и русскоязычных.

Что значит переносимым ? Результатом работы компилятора и линковщика студии является обычный PE файл. PE файл не запустится на linux. Там нужен формат elf. О какой переносимости речь, я не понимаю.
Для винды malloc и fopen всегда одинаковы, это одни и те же системные вызовы.

Си это не язык Java, Java файл заработает и на винде и на линуске потому что для каждой Ос будет своя JVM, в которой запускается программа.

wisgest

RoflanDaniil, компилятор не знает и не должен знать, что делает функция, даже если она из системной библиотеки, он должен знать только о том, как её вызывать (какого типа аргументы, в каком порядке передавать…).

Для винды malloc и fopen всегда одинаковы, это одни и те же системные вызовы.
И их аргументы (их типы, последовательность передачи и т. п.) полностью совпадают? Если нет, то нужна прослойка. RoflanDaniil, переносимость исходных текстов. Между API вантуза и линукса такого нет и быть не может. А через CRT очень даже может. pfemidi, ну такая же функция у стандартной библиотеки. Для каждой ОС у каждого компилятора своя стандартная библиотека. malloc и fopen это просто фукнции. Которые в своем коде должны делать системные вызовы.
А для CRT почему то именно выделяют от стандартной библиотеки. И еще заставляют таскать с собой всю библиотеку, даже если программе нужна только одна функция.

RoflanDaniil, malloc и fopen и есть функции из стандартной библиотеки, которые внутри себя дёргают системные вызовы. Но внешне и malloc, и fopen одинаковы в какой бы OS не компилировался исходный текст программы. Поэтому

одинаково хорошо скомпилируется и в Linux, и в Windows, и в QNX, и ещё чёрт знает где, а (упрощённо):

будет компилироваться только в Windows.

И всю библиотеку с собой никто не таскает, таскают только те функции, которые используются в программе. Например если в программе используется только malloc, то код scanf в программу не попадёт.

А CRT помимо того что содержит в себе все функции стандартной библиотеки так же выполняет начальную настройку для дальнейшей благополучной работы этих функций из стандартной библиотеки: устанавливает stack, устанавливает heap, обнуляет статические переменные, регистрирует необходимые обработчики исключений и т.д.

Как уже правильно советовал Illia Nezhyhai про glibc надо почитать. Ну или изучить исходники от Visual Studio как я уже говорил. Потому что рассказывать об этом долго и нудно, лучше уж будет самому один раз увидеть что это такое.

CRT - это реализация стандартной библиотеки Си/С++ для данного компилятора.
ОС обычно пишутся на Си и если в ОС нет реализации функций из стандарта Си, то они реализуются в стандартной библиотеке. Все классы из stdlib С++ реализованы в CRT.

CRT в VS может линковаться как статически так и динамически, в зависимости от опций компилятора. Линкуете статически - у вас распухает ваш исполняемый файл, динамически - пользователь должен предварительно поставить соответствующий vcredist (установку можно встроить в собственный инсталлятор). С точки зрения производительности оба варианта примерно одинаковы.

Вы можете не использовать стандартную библиотеку в принципе (отключив ее опциями компилятора) и работать на прямую с ОС, но это накладывает много ограничений и вы фактически остаетесь с кастрированным вариантом ЯП, т.к. например в С++ даже стандартный new/delete, на сколько я знаю, реализованы в стандартной библиотеке и прямого аналога в ОС нет. Обычно этим никто не заморачивается из-за возникающих проблем, решение которых заметно увеличит время реализации проекта, разве что вам необходимо сделать исполняемый файл минимального размера, максимально быстро стартующий и без зависимостей.


Василий Колесов

Здесь вы сможете скачать распространяемый пакет майкрософт визуал ++ 2005, 2008, 2010, 2012, 2013, 2015, 2017, 2019 x64 x86 (64 -32 бит) все версии включая самые последние.

Microsoft Visual C ++ необходим для установки и работы программ и игр разработанных на этой платформе.

Выберите какой хотите скачать Visual C:


Ответы на популярные вопросы - FAQ

Как установиить Microsoft Visual C

Если у вас Windows 64 битная (x64), то для установки Microsoft Visual C вам необходимо скачать оба файла 32 бит и 64 бит, извлечь файлы из архивов vcredist x86 и vcredist x64, далее запустить и установить последовательно. Если у вас Windows 32 битной версии (x86), то для установки Microsoft Visual C ++ скачайте только 32 бит, извлеките файл vcredist x86 и запустите его последовательно нажимая далее.

Нужно ли удалять старые версии Microsoft Visual C

Нет не нужно, так как при установке Microsoft Visual C++ сам удаляет старые версии и вместо них устанавливает новые.

Как открыть Microsoft Visual C

Microsoft Visual C нельзя открыть это не обычная программа а набор библиотек файлов и пакетов для работы различных программ и игр. Поесть вы не найдете ярлыка или файла запуска.

Устанавливаю Microsoft Visual C но программы не запускаются

Попробуйте полностью удалить все версии Microsoft Visual C через панель Установки и удаления программ и установите все версии по отдельности, начиная с 2005 по 2019.

Не удаляется Microsoft Visual C

Какую версию удалять Microsoft Visual C если ошибка при запуске программы

Если вы не знаете наверняка какая версия Microsoft Visual C повреждена то попробуйте поочередно устанавливать все версии начиная с 2005

Какой версии Microsoft Visual C не хватает

Для того чтобы понять какой версии не хватает для работы программы или игры, зайдите в Панель управления- Установка и удаление программ и посмотрите какие версии уже установлены и каких нет. Доустановите те версии которых нет в списке установленных программ.

Ошибка при установке Microsoft Visual C

Что за программа Microsoft Visual C++

Microsoft Visual C++ распространяемый пакет ( redistributable package) - это специальная программа, позволяющая запускать программы и игры на компьютере разработанные на языке программирования языке C++ в среде Visual Studio. Другими словами Visual ++ это набор пакетов с данными, которые используют программы при работе на компьютере. Соответственно, когда программа или гра не находит нужный пакет, то появляется ошибка.

На сайте вы сможете скачать распространяемый пакет (redistributable package) в зависимости от версии (пакета) по отдельности: 2005 2008 2010 2012 2013 2015 2017 2019 x64 x86.

Также можно скачать все версии одним файлом, что позволит быстро установить Visual C++ запустив на установку один файл, который установит все версии Microsoft Visual C++.

При установке данного пакета, все имеющиеся версии будут переустановлены, а не имеющиеся доустановлены. Что позволит не устанавливать каждый пакет по отдельности, а также избежать разных ошибок при установке по отдельности.

Сюда входят оба пакета как 32 так и 64 битная .

Microsoft Visual С 2005

Поддерживаемая операционная система

  • 32-разрядная (x86)
  • 64-разрядная (x64, WOW)
  • ARM

Windows 10; Windows 7 Service Pack 1; Windows 8; Windows 8.1; Windows Server 2003 Service Pack 2; Windows Server 2008 R2 SP1; Windows Server 2008 Service Pack 2; Windows Server 2012; Windows Vista Service Pack 2; Windows XP Service Pack 3

Если у вас Windows 64 битная, то необходимо устанавливать оба пакета как 32 так и 64 битную.

Если у вас Windows 32 битная, то необходимо устанавливать только 32 битную

Microsoft Visual С 2008

Поддерживаемая операционная система

  • 32-разрядная (x86)
  • 64-разрядная (x64, WOW)
  • ARM

Windows 10; Windows 7 Service Pack 1; Windows 8; Windows 8.1; Windows Server 2003 Service Pack 2; Windows Server 2008 R2 SP1; Windows Server 2008 Service Pack 2; Windows Server 2012; Windows Vista Service Pack 2; Windows XP Service Pack 3

Если у вас Windows 64 битная, то необходимо устанавливать оба пакета как 32 так и 64 битную.

Если у вас Windows 32 битная, то необходимо устанавливать только 32 битную

Microsoft Visual С 2010

Поддерживаемая операционная система

  • 32-разрядная (x86)
  • 64-разрядная (x64, WOW)
  • ARM

Windows 7; Windows Server 2003 R2 (32-Bit x86); Windows Server 2003 Service Pack 2; Windows Server 2008 R2; Windows Server 2008 Service Pack 2; Windows Vista Service Pack 2; Windows XP Service Pack 3

Если у вас Windows 32 битная, то необходимо устанавливать только 32 битную

Если у вас Windows 64 битная, то необходимо устанавливать оба пакета как 32 так и 64 битную .

Microsoft Visual С 2012

Поддерживаемая операционная система

  • 32-разрядная (x86)
  • 64-разрядная (x64, WOW)
  • ARM

Windows 7 Service Pack 1; Windows 8; Windows 8.1; Windows Server 2003; Windows Server 2008 R2 SP1; Windows Server 2008 Service Pack 2; Windows Server 2012; Windows Vista Service Pack 2; Windows XP

Если у вас Windows 32 битная, то необходимо устанавливать только 32 битную

Если у вас Windows 64 битная, то необходимо устанавливать оба пакета как 32 так и 64 битную .

Microsoft Visual С 2013

Поддерживаемая операционная система

  • 32-разрядная (x86)
  • 64-разрядная (x64, WOW)
  • ARM

Windows 7 Service Pack 1; Windows 8; Windows 8.1; Windows Server 2003; Windows Server 2008 R2 SP1; Windows Server 2008 Service Pack 2; Windows Server 2012; Windows Vista Service Pack 2; Windows XP

Если у вас Windows 32 битная, то необходимо устанавливать только 32 битную

Если у вас Windows 64 битная, то необходимо устанавливать оба пакета как 32 так и 64 битную .

Microsoft Visual С 2015

Поддерживаемая операционная система

  • 32-разрядная (x86)
  • 64-разрядная (x64, WOW)
  • ARM

Windows 10; Windows 7 Service Pack 1; Windows 8; Windows 8.1; Windows Server 2003 Service Pack 2; Windows Server 2008 R2 SP1; Windows Server 2008 Service Pack 2; Windows Server 2012; Windows Vista Service Pack 2; Windows XP Service Pack 3

Если у вас Windows 32 битная, то необходимо устанавливать только 32 битную

Если у вас Windows 64 битная, то необходимо устанавливать оба пакета как 32 так и 64 битную .

Microsoft Visual С 2017

Поддерживаемая операционная система

  • 32-разрядная (x86)
  • 64-разрядная (x64, WOW)
  • ARM

Windows 10; Windows 7 Service Pack 1; Windows 8; Windows 8.1; Windows Server 2003 Service Pack 2; Windows Server 2008 R2 SP1; Windows Server 2008 Service Pack 2; Windows Server 2012; Windows Vista Service Pack 2; Windows XP Service Pack 3

Если у вас Windows 32 битная, то необходимо устанавливать только 32 битную

Если у вас Windows 64 битная, то необходимо устанавливать оба пакета как 32 так и 64 битную .

Microsoft Visual С 2019

Пакет Microsoft Visual C ++ 2019 включает в себя пакеты 2015, 2017, 2019. При установке данного пакета, установленные пакеты 2015 или 2017 будут заменены.

Поддерживаемая операционная система

  • 32-разрядная (x86)
  • 64-разрядная (x64, WOW)
  • ARM

Windows 10; Windows 7 Service Pack 1; Windows 8; Windows 8.1

Если у вас Windows 32 битная, то необходимо устанавливать только 32 битную

Если у вас Windows 64 битная, то необходимо устанавливать оба пакета как 32 так и 64 битную .

Ошибки при установке Microsoft Visual C++

При установке Visual C++ могут встречаться разные ошибки. Рассмотрим способы их устранения

Основная масса игр и программ требует установленного Microsoft Visual C++ — без этого пакета приложения просто не запустятся. При этом пользователи будут видеть многочисленные ошибки, так или иначе связанные с MSVC, самая распространённая из которых — runtime library error.

Обычно при установке приложений Microsoft Visual C++ redistributable package устанавливается автоматически, но не исключены и некоторые ошибки, возникающие в процессе инсталляции. В большинстве случаев это связано с использованием контрфактного ПО или с вирусными атаками.

Разновидности пакетов

Существует несколько версий продукта, в том числе и под разные архитектуры. Как и большинство приложений, Microsoft Visual C++ выпускается для систем 32/ 64bit, и рекомендуется использовать полностью совместимый пакет, чтобы исключить возможные ошибки при работе. На ОС х64 может быть установлена как 32-разрядная (x86), так и 64-разрядная (x64) версия, и в большинстве случаев для запуска игр в таких системах требуется наличие обоих пакетов.

С чего начать установку Visual C++?

  1. Нужно определить какая у Вас разрядность системы: 32 или 64 bit. Если у Вас 64bit, то ставим обе версии 32/64, если у Вас система 32bit - ставим только 32
  2. Зайдите через панель управления в "Программы и компоненты" и посмотрите, какие уже установлены версии Visual C++
  3. На моём компьютере (автора статьи), установлены полностью все версии. Что и способствует запуску игр как новых так и старых без ошибок
  4. Устанавливайте все отсутствующие версии начиная с самой первой - 2005, и доходите до последней - 2017. (Если вы не знаете от какой версии файлы, но на нашем сайте всё указано в описании для каждого файла.)
  5. Установка много времени не займет, только так, вы загрузите все библиотеки DLL

Microsoft Visual C++ 2005

Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)

Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security Update

Microsoft Visual C++ 2008

Microsoft Visual C++ 2008 пакет обновления 1 (SP1) (x86)

Microsoft Visual C++ 2008 пакет обновления 1 (SP1) (x64)

Microsoft Visual C++ 2010

Распространяемый пакет Microsoft Visual C++ 2010 (x86)

Распространяемый пакет Microsoft Visual C++ 2010 (x64 --- )

Microsoft Visual C++ 2012

Распространяемый пакет Visual C++ для Visual Studio 2012 Обновление 4

Microsoft Visual C++ 2013

Распространяемые пакеты Visual C++ для Visual Studio 2013

Microsoft Visual C++ 2015

Распространяемый компонент Microsoft Visual C++ 2015 Обновление 3

Microsoft Visual C++ 2017

Microsoft Visual C++ 2015-2017-2019

Внимание: Visual C++ 2015, 2017 и 2019 содержат одинаковые распространяемые файлы.

Но есть нюанс, установка на компьютер 2019 версии может повлиять на игры или программы написанные на ранее созданных версия 2015 и 2017. А вот если установить отдельно пакет Visual C++ 2015, то он не заменит файлы более поздних версий. Visual C++ версий 2013 и более ранние, не относятся к данному пункту, т.к у них свои собственные файлы не зависимые друг от друга

Будем рады услышать от Вас отзыв, также поможем при установке компонентов, и в исправлении ошибок. Пишите всё в комментариях, чуть ниже

Программам, разработанным с помощью Visual Studio, обычно требуется для запуска определенная версия Microsoft Visual C++ Redistributable. Данное условие приводит к установке на ПК Windows 10, Windows 8.1 и Windows 7 большого количеств различных версий распространяемых пакетов Visual C++.

В результате на большинстве устройств Windows можно наблюдать ситуацию, когда в системе развернуты пакеты Microsoft Visual C++ Redistributable, установка которых была инициирована программным обеспечением, обновлениями, например патчами безопасности или вручную системным администратором.

Microsoft Visual C++ Redistributable

Пакеты Redistributable сохраняются в общедоступных системных директориях, поэтому любая программа может получить к ним доступ при необходимости.

Microsoft внесла значительные изменения с выходом Microsoft Visual C++ Redistributable для Visual Studio 2015, 2017 и 2019. Для распространяемых пакетов доступен исходный образ, который исключает необходимость установки различных версий пакетов в целевую систему.

Microsoft приводит следующий пример на странице поддержки «Последние поддерживаемые версии Visual C++ для скачивания»:

Например, установка распространяемого пакета Visual C++ 2019 позволяет работать с программами, созданные с помощью Visual C++ 2015 и 2017. Однако установка распространяемого пакета Visual C++ 2015 не заменяет новых версий файлов, установленных распространяемыми пакетами Visual C ++ 2017 и 2019.

Это основное отличие от предыдущих версий Visual C++, поскольку у них есть собственные файлы выполнения, которые не используются совместно с другими версиями.

На странице поддержки Microsoft Docs приводится дополнительная информация:

Эта универсальная CRT является компонентом операционной системы Microsoft Windows. Она входит в состав операционной системы Windows 10 и доступна через Центр обновления Windows для старых операционных систем от Windows Vista до Windows 8.1. Кроме того, локальное развертывание универсальной CRT поддерживается с некоторыми ограничениями.

Администраторы Windows могут загрузить универсальную среду выполнения С++ в зависимости от архитектуры процессора по следующей ссылке:

Ранние версии распространяемых пакетов для Visual Studio по-прежнему нужно будет скачивать и устанавливать отдельно, или они будут развертываться в процессе установки ПО. Сторонний установщик Visual C++ All in One Installer помогает установить все необходимые распространяемые пакеты в системы Windows.

Универсальная CRT – шаг в верном направлении. Хотя она не решает проблему со старыми распространяемыми пакетами C++, она значительно упрощает работу с пакетами Visual C++ 2015 Redistributable и выше.

Читайте также: