C runtime (crt) and c++ standard library (stl) .lib files
Содержание:
- Installation
- Запускаем с правами администратора, а также перейдя в режим совместимости.
- All in One Visual C++ Installers
- Microsoft Visual C++ Runtime Library Runtime Error — как исправить
- Windows Runtime C++ Template Library Compared to ATL
- Причина неполадки – неверное название учетной записи
- Locate the redistributable files
- C++ Standard Library .lib files
- Wide Character (Unicode) Support
- Статическое связывание
- Локальное развертывание
- Загрузка и установка Visual C++
- Запуск от имени администратора и в режиме совместимости
- Распространяемые файлы и лицензирование
- Standard Functions
- Центральное развертываниеCentral Deployment
- Потенциальные ошибки времени выполненияPotential run-time errors
- Meaning of Runtime library runtime error microsoft visual c++?
Installation
Download and install any Visual C++ redistributable runtime library package that is easy. It’s like downloading the setup from below given the direct download links and then running the installer. Every installation step is self-explanatory. You can have multiple redistributable runtime packages installed on your computer.
- Select your architecture and download the Microsoft Visual C++ Redistributable from the links below.
- Then open its Installer. The window will open and ask you to accept the terms and then click on the Install button.
- It will take 4-5 seconds to install into your System.
- After installation completes, a window will appear that tells you that you have successfully installed the Microsoft Visual C++ Redistributable on your System.
Silent Installation
You can also install Visual C++ redistributable in silent mode. The installer comes with a /q switch that can be used to run the VC++ installer in silent mode.
There are two ways to run the installer with /q switch. One is to create a shortcut of the downloaded setup file and append /q /norestart at the end of the target field in shortcut properties.VC Redistributable silent install shortcut
The second way is to run the installer from the command-line. Here is an example of how I ran the installer in quiet mode:
Запускаем с правами администратора, а также перейдя в режим совместимости.
Среди прочего возможен и такой вариант, как неполадки из-за возраста программы (или игры). То есть попросту у программных комплексов отсутствует совместимость, так как версия устаревшая. В этом случае и пригодится данный способ, позволяющий избавиться от проблемы без каких-либо усилий.
Достаточно:
- Вызвать меню, кликнув по иконке правок кнопкой;
- Активировать соответствующую команду;
- Подождать время, чтобы запустить, к примеру, игру.
Используемый алгоритм:
- Перейти в свойства, выбрав соответствующую команду в контекстном меню;
- Найти «Совместимость», выбрать этот раздел;
- В первом же пункте списка поставить галочку, а также подобрать версию системы;
- Далее активировать «применить», а потом «ок».
- Можно приступать к запуску.
All in One Visual C++ Installers
If you are not comfortable to install Visual C++ redistributables one by one and want to install all of them, you should try out all in one Visual C++ installers. Here we list the best ones:
Visual C++ Redistributable Runtimes All-in-One
Visual C++ Redistributable Runtimes All-in-One comes as a zip file with all versions of VC++ included and a simple batch file. Download it from the link below, unzip to a folder and run install_all.bat. This will install all the redistributables from version 2005 to 2019.
All the installs are silent and do not require user intervention. The script does not restart Windows by itself. You’ll need to restart the computer once the installation is done.
Visual C++ Runtime Installer (All-In-One) v56
RuntimePack
RuntimePack solves the problem of figuring out which Microsoft Visual C++ Redistributable Package you need as well as numerous DLL and OCX files that might be missing or not properly registered, causing Windows errors.
RuntimePack is a single executable that will install all the VC++ runtimes on your computer.
Microsoft Visual C++ Runtime Library Runtime Error — как исправить
Сегодня мы опишем все варианты действий, которые помогут решить распространенную проблему в Windows (7/8/8.1/10), связанную с ошибкой Microsoft Visual C++.
Microsoft Visual C++ Runtime Library: Runtime Error – ошибка, возникающая по причине сбоев в работе операционной системы. Ее можно увидеть при загрузке новой игры (Skyrim, GTA и др.) или программы.
Точно не известно, почему данный сбой возникает на персональных ПК.
Интегрированная в саму систему Microsoft Visual C++ является очень сложным элементом, поэтому сбои в его работе считаются абсолютно нормальным происшествием.
Появление ошибки, при запуске Казаков в Windows 7
Исправление ошибки Runtime Error
Мы вывели все основные источники проблемы, и постарались дать краткое описание по их решению. Начнем с самого простого.
Проверка соответствий
Microsoft Visual C++ — основная база для написания игр и приложений. Первым действием пользователя может стать лишь проверка и установка обновлений. Официальный пакет можно скачать с сайта компании, он распространяется бесплатно.
Строит непременно обратить внимание на свойства ОС — скачать нужно свою битную версию x86-64.
Мощные ПК могут скачать последние пакеты Studio 2015.
Вирусы
Антивирус не может гарантировать защиту со 100% гарантией. Проверка всех дисков на наличие вирусов не будет лишней. Именно глубокое сканирование следует провести несколькими программами по удалению вредоносного ПО. Вспомогательные онлайн ресурсы тут тоже могут пригодиться, чтобы не производить установку большого количества антивирусов.
Runtime Error фото» title=»Исправление ошибки Runtime Error фото» width=»597″ height=»193″ /> Примените антивирусы с обновленными антивирусными базами
Ошибка во времени
Любая системная программа разрабатывается с расчетом на определенный срок своего действия, после его окончания будет нужна установка обновлений. Отчет времени ведется согласно часам на компьютере. Их сбой может привести к ложному истечению гарантийной работы. Поэтому следует установить правильное местное время.
Устанавливаем автоматическое определение времени и даты
Переустановка софта
Скачивание файлов часто приводит к потере нескольких важных элементов, без которых нормальное функционирование невозможно.
- Переустановите скачанную игру или программу заново.
- Найдите другой источник с похожим файлом и загрузите его оттуда.
- Произведите вручную поиск недостающих элементов.
Конфликты с DirectX
DirectX 10-той версии очень часто становиться причиной возникновения конфликта. Это возникает из-за его нагрузки на ОС. Некоторые Windows XP просто не справляются с полученным объемом информации.
- Решением может стать обновление DirectX . Лучше это сделать произвести с помощью установщика от Microsof.
- Можно самостоятельно найти более легкий аналог нежели DirectX 10, 11 и установить его.
NET Framework и его наличие
NET Framework может быть не установлен на вашем компьютере. Следует скачать актуальную версию под вашу операционную систему. Без данного элемента о работе игр и речи быть не может.
карта
карты и их драйвера всегда становятся проблемами при многих изменениях на ПК. Нужно проверить, нет ли тут конфликтов.
- Посетите сайт разработчика своей видеокарты. Проверьте наличие последних обновлений.
- Перед установкой произведите полное стирание предыдущих драйверов.
- Попробуйте снова включить проблемный софт.
Проверяем драйвера видеокарты
Очистка реестра
Windows реестр очень важен для сохранения многих полезных функций, которые используются пользователей при каждом запуске компьютера. Иногда сохраненных данных становиться слишком много. Они начинают в хаотичном порядке выдавать разные ошибки. Пути, по которым раньше все работало, отныне становятся заблокированными.
- Очистите реестр специальными утилитами.
- Произведите перезагрузку системы в конце оптимизации.
Проверяем реестр на наличие ошибок через CCleaner
А вот видео инструкция по работе со сторонним софтом для исправления данного бага. Судя по отзывам — многим помогает.
Ошибка Microsoft Visual C++ Runtime Library устраняется в 100% случаях. Главное помнить, что испробовать нужно каждый пункт данной статьи в строгом с ним соответствии. Проблема носит исключительно виртуальный характер, искать спаленные элементы на платах не стоит.
- Алексей
- Распечатать
Windows Runtime C++ Template Library Compared to ATL
Windows Runtime C++ Template Library resembles the Active Template Library (ATL) because you can use it to create small, fast COM objects. Windows Runtime C++ Template Library and ATL also share concepts such as definition of objects in modules, explicit registration of interfaces, and open creation of objects by using factories. You might be comfortable with Windows Runtime C++ Template Library if you’re familiar with ATL.
Windows Runtime C++ Template Library supports the COM functionality that is required for UWP apps. Therefore, it differs from the ATL because it omits direct support for COM features such as:
-
aggregation
-
stock implementations
-
dual interfaces ()
-
standard enumerator interfaces
-
connection points
-
tear-off interfaces
-
OLE embedding
-
ActiveX controls
-
COM+
Причина неполадки – неверное название учетной записи
Достаточно будет задействовать данный метод и ошибку удастся исправить без лишних временных затрат. Проблемы, среди прочего, может вызывать имя записи. А точнее, использование кириллицы при его формировании. Потребуется лишь подготовить новую запись, используя латиницу.
Необходимо:
- Выбрав панель управления, поработать с учетными записями;
- Точнее, создать нового пользователя в созданной вкладке (имя должно быть английским);
- Осуществить переход в эту учетку;
- Время запускать нужное приложение.
Помимо этого в редких случаях может помочь смена имени каталога. Опять же с использованием латыни вместо кириллицы (к примеру, на Games).
Locate the redistributable files
To deploy redistributable files, you can use the redistributable packages installed by Visual Studio. In versions of Visual Studio since 2017, these files are named , , and . In Visual Studio 2015, Visual Studio 2017, and Visual Studio 2019, they’re also available under the names , , and (2015 only).
The easiest way to locate the redistributable files is by using environment variables set in a developer command prompt. In the latest version of Visual Studio 2019, you’ll find the redistributable files in the folder. In both Visual Studio 2017 and Visual Studio 2019, they’re also found in . In Visual Studio 2015, these files can be found in , where is the locale of the redistributable packages.
Another deployment option is to use redistributable merge modules ( files). In Visual Studio 2019, these files are part of an optional installable component named C++ 2019 Redistributable MSMs in the Visual Studio Installer. The merge modules are installed by default as part of a C++ install in Visual Studio 2017 and Visual Studio 2015. When installed in the latest version of Visual Studio 2019, you’ll find the redistributable merge modules in . In both Visual Studio 2019 and Visual Studio 2017, they’re also found in . In Visual Studio 2015, they’re found in .
C++ Standard Library .lib files
C++ Standard Library | Characteristics | Option | Preprocessor directives |
---|---|---|---|
Multithreaded, static link | |||
Multithreaded, dynamic link (import library for ) | , | ||
Multithreaded, static link | , | ||
Multithreaded, dynamic link (import library for ) | , , |
When you build a release version of your project, one of the basic C runtime libraries (, , ) is linked by default, depending on the compiler option you choose (multithreaded, DLL, ). If you include one of the C++ Standard Library header files in your code, a C++ Standard Library will be linked automatically by Visual C++ at compile time. For example:
For binary compatibility, more than one DLL file may be specified by a single import library. Version updates may introduce dot libraries, separate DLLs that introduce new library functionality. For example, Visual Studio 2017 version 15.6 introduced to support additional standard library functionality without breaking the Application Binary Interface (ABI) supported by . The import library included in the toolset for Visual Studio 2017 version 15.6 supports both DLLs, and the vcredist for this version installs both DLLs. Once shipped, a dot library has a fixed ABI, and will never have a dependency on a later dot library.
Wide Character (Unicode) Support
This is the major new feature in this library. It is still under development and hasn’t undergone extensive testing yet.
As suggested by I have started to add wide-character support to the library. Basically that means implementing wide-character versions of various functions.
Uppercase and lowercase
When dealing with ASCII, functions like , , and are trivial to implement. But as soon as Unicode enters the picture, they become much more complicated. There are different rules for uppercase versus lowercase and alphabetic versus numeric, so some operating system help is in order. To fix this problem, the function is used to implement the family of functions, and the functions and are used to implement and , respectively.
File encoding
Up until VS2005 even the Unicode file library functions could only write ASCII characters. Output to , , and in text mode are all translated from Unicode before it is written to the file.
Because adding support for UTF-8, UTF-16, and other forms of file encoding would just add bloat to this library, I have made the decision to not include it. The behavior will remain compatible with the pre-VS2005 CRT. If you need to deal with file encodings, you probably need the full CRT anyway.
Статическое связывание
Наряду с библиотеками динамической компоновки Visual Studio предоставляет основную часть своих библиотек в виде статических библиотек. Вы можете статически связать статическую библиотеку с приложением, то есть связать объектный код библиотеки непосредственно с приложением. При этом создается отдельный двоичный файл без зависимости от библиотеки DLL, чтобы вам не требовалось отдельно развертывать файлы библиотеки Visual C++. Однако не рекомендуется использовать такой подход, так как статически связанные библиотеки не могут обновляться на месте. Если используется статическое связывание и необходимо обновить связанную библиотеку, потребуется выполнить повторную компиляцию и повторное развертывание приложения.
Локальное развертывание
В локальном развертывании файлы библиотек устанавливаются в папку приложения вместе с исполняемым файлом. Разные версии распространяемых библиотек Visual C++ можно устанавливать в одну папку, так как имя файла для каждой версии включает в себя номер версии. Например, версия 12 библиотеки времени выполнения C++ имеет имя msvcp120.dll, а версия 14 — имя msvcp140.dll.
Библиотека может быть распределена по нескольким дополнительным библиотекам DLL, называемым точечными. Например, некоторые функциональные возможности в стандартной библиотеке, выпущенной в Visual Studio 2017 версии 15.6, были добавлены в msvcp140_1.dll, чтобы сохранить совместимость msvcp140.dll с ABI. Если вы используете Visual Studio 2017 версии 15.6 (набор инструментов 14.13) или набор инструментов более поздней версии из Visual Studio 2017, вам может потребоваться локально развернуть эти точечные библиотеки, как и основную библиотеку. Эти отдельные точечные библиотеки затем объединяются в следующий основной номер версии базовой библиотеки при изменении ABI.
Так как корпорация Майкрософт не может автоматически обновлять локально развернутые библиотеки Visual C++, мы не рекомендуем применять локальное развертывание этих библиотек. Если вы решите использовать локальное развертывание распространяемых библиотек, мы рекомендуем реализовать собственный метод автоматического обновления локально разворачиваемых библиотек.
Загрузка и установка Visual C++
Самым простым и правильным способом будет переустановка Microsoft Visual C++. Но перед этим вам обязательно нужно удалить компоненты, которые уже установлены на компьютере. Иначе вы рискуете снова столкнуться с той же самой неполадкой.
Итак, сначала воспользуйтесь штатной утилитой «Программы и компоненты». В списке установленных приложений отыщите все версии Visual C++ и поочередно удалите их. Эту процедуру нужно сделать со всеми компонентами без исключений по версиям и разрядности.
После деинсталляции всех компонентов обязательно перезагрузите компьютер. Дополнительно можно выполнить очистку реестра и временных файлов.
Теперь можно переходить к повторной установке библиотек. Обязательно скачивайте дистрибутив с официального сайта Microsoft. Чтобы вы не искали нужную страницу вручную, просто откройте данную ссылку и загрузите установщик. При выборе подходящего инсталлятора ориентируйтесь на название файла. Vc_redist.x86.exe нужно скачивать при использовании Windows 32-bit, а файл с названием vc_redist.x64.exe, соответственно, для 64-битных операционных систем.
Теперь необходимо запустить инсталлятор и следовать инструкции. От вас требуется лишь согласие с лицензией и нажатие одной кнопки «Установить». Далее, утилита выполнит все необходимые действия автоматически. Вам останется только перезагрузить компьютер и проверить, исчезла ли ошибка Runtime Error при запуске того или иного приложения.
Запуск от имени администратора и в режиме совместимости
Если игра выпущена давно и не запускается, то рассматриваемая ошибка может свидетельствовать о несовместимости программных комплексов новой версии со старой версией. Поэтому запуск от лица администратора и в режиме совместимости может решить проблему быстро и безболезненно.
Действия:
- Правой кнопкой мыши на ярлык с игрой.
- Кликнуть на строчку, показанную на скриншоте.
- Подтвердить действие.
- Дождаться запуска.
Алгоритм:
- Правой кнопкой на ярлык приложения.
- Клик на строчку «Свойства».
- В окне выбрать раздел «Совместимость».
- Поставить галочку, как на картинке.
- В строке выбора ОС указать вашу текущую версию.
- Нажать «Применить» и «ОК».
- Запустить приложение.
Распространяемые файлы и лицензирование
При развертывании приложения необходимо также развернуть файлы, поддерживающие это приложение. Если какие – либо из этих файлов предоставляются корпорацией Майкрософт, проверьте, разрешено ли их распространение. Ссылка на условия лицензии Visual Studio находится в интегрированной среде разработки. Используйте ссылку условия лицензии в диалоговом окне о Microsoft Visual Studio. Или загрузите соответствующие лицензионные соглашения и лицензии из каталога лицензийVisual Studio.
Чтобы просмотреть список Redist, указанный в разделе «распространяемый код» условий лицензионного соглашения на использование программного обеспечения Microsoft Visual Studio 2019, ознакомьтесь с разделом
Чтобы просмотреть список Redist, указанный в разделе «распространяемый код» условий лицензионного соглашения на использование программного обеспечения Microsoft Visual Studio 2017, ознакомьтесь с разделом .
Чтобы просмотреть список Redist, указанный в разделе «распространяемый код» условий лицензионного соглашения на использование программного обеспечения Microsoft Visual Studio 2015, ознакомьтесь с разделом .
Дополнительные сведения о распространяемых файлах см. в разделе Определение библиотек DLL для повторного распространения и примеров развертывания.
Standard Functions
So now we have taken care of the program’s entry point. What about the other functions?
printf and Family
One of the more complex tasks performed by the C Runtime is parsing the format string. (I’ll admit it’s not terribly complex; it’s just non-trivial compared to ) To save space, we can offload this processing to the Windows function . No, that’s not a wide-character version. The probably stands for Windows.
C++
Copy Code
extern "C" int __cdecl printf(const char *fmt, ...) { va_list args; va_start(args, fmt); int ret = vprintf(fmt, args); va_end(args); return ret; } extern "C" int __cdecl vprintf(const char *fmt, va_list args) { char bfr; int ret = wvsprintf(bfr, fmt, args); fwrite(bfr, ret, 1, stdout); return ret; }
File I/O
Originally I had planned to eschew the FILE structure altogether — and instead just use a HANDLE cast to a FILE*. But this would have only given me two bits of information. As I added functionality to the library this ideal solution became less ideal when I needed to store an end-of-file flag, text-mode flag, and possibly other data. And besides, not using the FILE structure means that the , , and identifiers don’t work! So now I (ab)use the FILE structure.
Because I cannot change the FILE structure itself (it is defined in stdio.h) I have to use its fields to work with my data. A very ugly solution. But this library isn’t intended to be pretty. NOTE however, that this means code that relies on internal fields in the FILE structure will crash. But then again, you shouldn’t be messing with internal data structures anyways, right?
Thus, for illustration, here is :
C++
Copy Code
extern "C" FILE *fopen(const char *path, const char *attrs) { DWORD access, disp; if (strchr(attrs, 'w')) { access = GENERIC_WRITE; disp = CREATE_ALWAYS; } else { access = GENERIC_READ; disp = OPEN_EXISTING; } HANDLE hFile = CreateFileA(path, access, , , disp, , ); if (hFile == INVALID_HANDLE_VALUE) return ; _FILE *file = new _FILE; memset(file, , sizeof(_FILE)); file->set_handle(hFile); if (strchr(attrs, 't')) file->_flag |= _FILE_TEXT; return file; }
and are substantially more complicated than this, because they must translate » combinations to » only. For brevity, I will not discuss the algorithm — see the source code if you are interested.
String functions
Replacing the CRT means no more , , or even . These must be implemented from scratch. Thankfully, they are not difficult to implement — just tedious. Care should be taken to handle pointers and other special cases described in the MSDN documentation.
Центральное развертываниеCentral Deployment
При централизованном развертывании файлы библиотеки DLL устанавливаются в каталог Windows\System32, а файлы библиотеки 32-разрядных файлов библиотеки на системах x64 — в каталог Windows\SysWow64.In central deployment, library DLL files are installed in the Windows\System32 directory, or for 32-bit library files on x64 systems, the Windows\SysWow64 directory. Microsoft автоматически обновляет свои библиотеки, развернутые централизованно.Microsoft automatically updates its libraries that are centrally deployed. Обновления для локально развернутых или статически связанных библиотек Visual C++ нужно предоставлять вам.For Visual C++ libraries that are locally deployed or statically linked, you must provide the updates.
Для централизованного развертывания библиотек Visual C++ можно использовать один из двух источников устанавливаемых файлов:To centrally deploy Visual C++ libraries, you can use one of these two sources for the files to install:
-
Файлы распространяемого пакета, которые представляют собой автономные исполняемые файлы командной строки, содержащие все распространяемые библиотеки Visual C++ в сжатом виде.Redistributable package files, which are stand-alone command-line executables that contain all the Visual C++ redistributable libraries in compressed form, or
-
Распространяемые модули слияния (MSM-файлы), которые можно использовать для развертывания конкретных библиотек и включения в файл установщик Windows (. msi) приложения.Redistributable merge modules (.msm files), which you can use to deploy specific libraries, and which you include in your application’s Windows Installer (.msi) file.
Файл распространяемого пакета устанавливает все библиотеки Visual C++ для конкретной системной архитектуры.A redistributable package file installs all of the Visual C++ libraries for a particular system architecture. Например, если ваше приложение создано для x64, можно использовать распространяемый пакет vcredist_x64.exe для установки всех библиотек Visual C++, используемых вашим приложением.For example, if your application is built for x64, you can use the vcredist_x64.exe redistributable package to install all the Visual C++ libraries your application uses. Вы можете запрограммировать установщик приложения для обязательного запуска распространяемого пакета перед установкой приложения.You can program your application installer to run the redistributable package as a prerequisite before you install your application.
Модуль слияния обеспечивает включение логики установки для конкретной библиотеки Visual C++ в файле настройки приложения установщика Windows.A merge module enables the inclusion of setup logic for a specific Visual C++ library in a Windows Installer application setup file. Можно включить столько модулей слияния, сколько требуется приложению.You can include as many or as few merge modules as your application requires. Модули слияния следует использовать, когда нужно минимизировать размер двоичных файлов развертывания.Use merge modules when you need to minimize the size of your deployment binaries.
Так как централизованное развертывание с использованием распространяемого пакета или модулей слияния позволяет Центру обновления Windows автоматически обновлять библиотеки Visual C++, мы рекомендуем использовать в приложении библиотеки DLL вместо статических, а также использовать централизованное развертывание вместо локального.Because central deployment by using a redistributable package or merge modules enables Windows Update to automatically update the Visual C++ libraries, we recommend that you use the library DLLs in your application instead of static libraries, and use central deployment instead of local deployment.
Потенциальные ошибки времени выполненияPotential run-time errors
Если Windows не удается найти одну из распространяемых библиотек DLL, необходимых для приложения, может отобразиться сообщение следующего вида: «не удалось запустить приложение, так как Библиотека DLL не найдена.If Windows can’t find one of the redistributable library DLLs required by your application, it may display a message similar to: «This application has failed to start because library .dll was not found. Переустановка приложения может устранить эту проблему. «Reinstalling the application may fix this problem.»
Чтобы устранить эту ошибку, убедитесь, что установщик приложения построен правильно.To resolve this kind of error, make sure your application installer builds correctly. Убедитесь, что распространяемые библиотеки правильно развернуты в целевой системе.Verify that the redistributable libraries get deployed correctly on the target system. Дополнительные сведения см. в разделе Основные сведения о зависимостях приложения Visual C++.For more information, see Understanding the Dependencies of a Visual C++ Application.
Meaning of Runtime library runtime error microsoft visual c++?
Ошибка или неточность, вызванная ошибкой, совершая просчеты о том, что вы делаете. Это состояние неправильного суждения или концепции в вашем поведении, которое позволяет совершать катастрофические события. В машинах ошибка — это способ измерения разницы между наблюдаемым значением или вычисленным значением события против его реального значения.
Это отклонение от правильности и точности. Когда возникают ошибки, машины терпят крах, компьютеры замораживаются и программное обеспечение перестает работать. Ошибки — это в основном непреднамеренные события. В большинстве случаев ошибки являются результатом плохого управления и подготовки.
Ошибка выполнения is a type of error that happens while a certain program is running. Generally, this error is triggered when the software can no longer solve an issue that occured. This error is also referred to as a “bug”. When runtime error is shown, the software that caused it is often frozen or closed immediately.
Ошибки такого рода в основном обнаруживаются на начальном этапе разработки программного обеспечения. Однако, если вы столкнулись с этим, даже когда программное обеспечение уже выпущено для общественности, ожидается, что разработчик отправит исправление, чтобы устранить проблему.
Ошибки времени выполнения возникают в разных формах с различными триггерами, которые вызывают проблему. Вот некоторые из наиболее распространенных причин ошибок времени выполнения:
- Конфликтные проблемы с другими работающими программами
- Коррумпированная запись в системе
- Проблемы с низкой памятью
- Устаревшие драйверы
- Старое или поврежденное аппаратное устройство
- Вредная вирусная атака
- Плохая практика программирования