Программа не может запуститься, потому что api-ms-win-crt-runtime-l1-1-0.dll отсутствует на вашем компьютере

9

При запуске определенных программ в Windows 7 я получаю следующее сообщение об ошибке:

Программа не может запуститься, потому что api-ms-win-crt-runtime-l1-1-0.dll отсутствует на вашем компьютере

введите описание изображения здесь

Нажатие «ОК» закрывает диалоговое окно и позволяет программному обеспечению работать без проблем, но ошибка повторяется при следующем запуске программного обеспечения.

К сожалению, переустановка программного обеспечения не решает проблему.

Это становится очень раздражающим. Как мне решить это?

ДэвидПостилл
источник

Ответы:

12

В чем причина этой ошибки и как ее исправить?

Это происходит, когда приложения, созданные с использованием Windows 10 SDK, выполняются в более ранних версиях Windows.

Это создает зависимость от Windows 10 Universal CRT (C Runtime) .

Чтобы это исправить, установите обновление для Universal C Runtime в Windows :

Windows 10 Universal CRT - это компонент операционной системы Windows, который обеспечивает функциональность CRT в операционной системе Windows. Это обновление позволяет приложениям Windows для настольных компьютеров, которые зависят от выпуска Windows 10 Universal CRT, работать в более ранних операционных системах Windows.

Microsoft Visual Studio 2015 создает зависимость от универсального CRT, когда приложения создаются с помощью пакета разработки программного обеспечения Windows 10 (SDK). Это обновление можно установить в более ранних операционных системах Windows, чтобы эти приложения работали правильно.


дальнейшее чтение

ДэвидПостилл
источник
Если простой Hello World скомпилирован с VS2017, исполняемый файл зависит от, api-ms-win-crt-runtime-l1-1-0.dllно если скомпилирован с помощью mingw, он зависит от msvcrt.dll. Почему?
Biswapriyo
@ Бисва Понятия не имею. Я никогда не использовал Visual Studio ... однако я предполагаю, что VS использует Windows 10 SDK, а mingw - нет.
DavidPostill
3
@ Бисва: это MinGW глупо. DLL, от которой она зависит, по сути является средой исполнения Visual C 4.2 (да, к настоящему времени она старше 10 версий), начиная с дней до Windows 95 . Это не библиотека, от которой кто-либо должен зависеть.
Джои
2
@ edc65 Возможно, библиотека скомпилирована в исполняемый файл, но фактически не используется. Также возможно, что вы просто не используете функцию в программном обеспечении, которая требует эту библиотеку.
RobertSF
1
@Joey: я думаю, что вы имеете в виду среду выполнения Visual C ++ 4.2 C. Был компилятор Microsoft C 4.x, но он не имел прозвища «Visual» и никогда не имел 32-битной версии. И тем временем MSVCRT.DLL много раз обновлялся, исправляя ошибки и обновляя, например, правила перехода на летнее время, но, как вы предполагаете, он по-прежнему совместим с ABI с Visual C ++ 4.2
Ben Voigt