Msi to redistribute ms vs2005 crt libraries что это за программа
Не могу найти подробную информацию о том, что такое 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, в которой запускается программа.
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++?
- Нужно определить какая у Вас разрядность системы: 32 или 64 bit. Если у Вас 64bit, то ставим обе версии 32/64, если у Вас система 32bit - ставим только 32
- Зайдите через панель управления в "Программы и компоненты" и посмотрите, какие уже установлены версии Visual C++
- На моём компьютере (автора статьи), установлены полностью все версии. Что и способствует запуску игр как новых так и старых без ошибок
- Устанавливайте все отсутствующие версии начиная с самой первой - 2005, и доходите до последней - 2017. (Если вы не знаете от какой версии файлы, но на нашем сайте всё указано в описании для каждого файла.)
- Установка много времени не займет, только так, вы загрузите все библиотеки 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, установка которых была инициирована программным обеспечением, обновлениями, например патчами безопасности или вручную системным администратором.
Пакеты 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 и выше.
Читайте также: