Отсутствует msvcr100.dll
Я сделал программу в Visual Studio 2010 на Windows 7 64-битной. Когда я пытаюсь запустить его на 32-битной Windows XP, я получаю сообщение об отсутствии msvcr100.dll. Когда я пытаюсь скопировать этот файл из Win7 в WInXP, я получаю сообщение, что msvcr100.dll не так. Как установить здание в VS, чтобы msvcr100.dll не понадобился?
6 ответов
Во-первых, вам нужно убедиться, что вы создаете 32-битный исполняемый файл - 64-битные не будут работать в 32-битной Windows.
Тогда вы можете либо...
- Поставьте 32-битные распространяемые файлы вместе с вашим приложением.
- Полностью удалите зависимость времени выполнения и статически создайте ссылку на среды выполнения C++. Для этого установите
Project -> Properties -> Configuration Properties -> C/C++ -> Code Generation -> Runtime Library
вMulti-threaded (/MT)
,
Статическое связывание библиотек времени выполнения должно помочь. Перейдите в Параметры проекта -> C/C++ -> Генерация кода -> Библиотека времени выполнения и измените значение на Многопоточная или Многопоточная отладка и перекомпилируйте. Таким образом, ваше приложение не должно зависеть от библиотек времени выполнения.
Также не забудьте собрать 32-битный исполняемый файл.
Ответы выше помогли мне, но я все еще получал ошибку:
фатальная ошибка C1189: #error: Пожалуйста, используйте ключ /MD для сборок _AFXDLL
Поэтому, чтобы помочь другим, которые, как и я, могли потратить слишком много времени на поиски четкого решения, я хотел бы добавить немного информации, которая решила эту проблему для меня. Как оказалось, у моего проекта была неправильная настройка "Использование MFC", чтобы использовать ответ выше.
Чтобы выразить это в ясных терминах:
Откройте свойства проекта (alt-F7 или Project-menu -> [My Project] Properties) и перейдите к Project -> Properties -> Configuration Properties
Если General -> Use of MFC
установлен в Use MFC in a Static Library
вы должны установить
C/C++ -> Code Generation -> Runtime Library
либо Multi-threaded Debug (/MTd)
или же Multi-threaded (/MT)
и если
General -> Use of MFC
установлен в Use MFC in a Shared DLL
вы должны установить
C/C++ -> Code Generation -> Runtime Library
либо Multi-threaded DLL (/MD)
или же Multi-threaded Debug DLL
Я получил этот ответ с веб-сайта ответов сообщества Microsoft, и вся заслуга должна быть за Дэвидом Уилкинсоном.
Вам необходимо скачать версию x86 с официального сайта:https://www.microsoft.com/en-us/download/details.aspx?id=26999(если ссылка больше не работает, загуглите «Microsoft Visual C++ 2010 Service Pack 1»). Распространяемый пакет обновления безопасности MFC") -> выберите x86, а не x64, так как вам нужна 32-битная dll.
Ключевое слово здесь «распространяемый», поскольку это сообщение об ошибке может появиться при попытке запустить .exe, который не был разработан на ПК конечного пользователя.
Ниже приведен хороший (и надежный) источник для загрузки распространяемых файлов без необходимости загрузки всего пакета или исправления VC++:
https://visualstudio.microsoft.com/vs/older-downloads/#microsoft-build-tools-2015-update-3
В моем случае мне понадобился «Распространяемый пакет Visual Studio 2010 VC++», хотя мы находимся в 2022 году.
введите описание изображения здесь
Шаг 1. Перейдите на этот сайт dll-files.com. введите описание изображения здесь
dll-files.com является отличным хранилищем файлов Windows DLL и содержит почти все файлы DLL, существующие в Windows.
Шаг 2. Теперь введите там свою ошибку DLL в окне поиска сайта.
Шаг 3. DLL-Files.com немедленно перечислит zip-файл, содержащий этот конкретный DLL-файл. Загрузите этот zip-файл на свой компьютер и распакуйте его. Извлеченная папка будет содержать файл ошибки DLL.
введите описание изображения здесь
Шаг 4. Скопируйте загружаемый DLL-файл (только этот файл) и вставьте этот файл в системную папку по умолчанию в зависимости от используемой ниже операционной системы. C: WindowsSystem (Windows 95/98 / Me) C: WINNT \ System32 (Windows NT / 2000) C: \ Windows \ System32 (Windows XP, Vista, Windows 7 / Windows 8.1 / Windows 10)
Windows спросит вас, хотите ли вы заменить существующий файл DLL новым. Скажи да, и пусть Windows скопирует файл. Перезагрузите компьютер и вуаля, теперь вы можете легко запустить игру / приложение, которое не открывалось и выдавало ошибку DLL.
Есть много других сайтов, которые дадут вам файлы DLL, которые вы хотите