Подтвердить что ты не робот

Приложение не удалось запустить, поскольку MSVCP100D.dll не был найден, переустановка приложения может работать

Я разобрался в этом и понял, что есть несколько причин для этого, поэтому я опишу свой сценарий.

Это происходит, когда мое приложение пытается загрузить DLL файл, созданный в другой версии Visual Studio (2010), если я создаю тот же проект в Visual Studio 2008, DLL файл загружается просто отлично...

Я не знаю, имеет ли это значение, но версия для Visual Studio 2010 для DLL файлов построена на Windows 7 x32, а Windows 64-разрядная версия Vista находится на другой стороне с Visual Studio 2008.

4b9b3361

Ответ 1

Если вы динамически связываете среду выполнения MSVC, вам необходимо установить эту среду выполнения на каждом компьютере, на котором будет запущено ваше приложение.

Обратите внимание, что в этом случае вы, как представляется, ссылаетесь на отладочную версию среды выполнения, нетрудно распространять приложения, связанные с отладочной версией среды выполнения.

Ответ 2

Если вы не хотите распространять среду выполнения, вы можете переключить свои параметры Runtime Library в Visual Studio (Свойства → C/С++ → Генерация кода → Библиотека времени выполнения) из /MD в/MT или из /MDd to/MTd.

Как говорили другие, если вы распространяете это приложение, вы должны динамически или статически связывать версию Release библиотеки Runtime, а не версию Debug.

Ответ 3

Просто небольшой связанный совет: НЕ ДОБАВЛЯЙТЕ любые * 248d.lib файлы при создании и запуске в версии RELEASE.

Я следил за советами из разных блогов, и я случайно добавил оба * 248d.lib, а также файлы 248.lib. В основном в Linker → Input → Add Dependencies, убедитесь, что в нем нет файлов * 248d.lib(здесь 248 - версия 2.4.8).

Я часами размышлял, почему в режиме выпуска ничего не работает, пока не показалось, что есть две копии .lib файлов, один * 248 и другой * 248d. Если вы включите какой-либо из d файлов в режиме выпуска, вы получите проблему с DLL.