Вопрос по visual-studio-2010, windows, visual-c++ – Visual C ++ исполняемый файл и отсутствует MSVCR100d.dll

36

Я знаю, что об этом спрашивали в других местах и отвечали, но у меня есть проблемы с MS Visual Studio 2010. Я разработал исполняемый файл C ++, но если я запускаю версию Release на компьютере, на котором нет библиотеки времени выполнения VC ++ (например, msvcr100d.dll), я получаю & quot; программа не может запуститься, потому что msvcr100d.dll отсутствует на вашем компьютере & quot; ошибка.

Это странно по двум причинам:

Why is it trying to link with the debug version of the redistributable? I tried applying this fix, setting the runtime library setting to /MT instead of /MD (multi-threaded DLL), but that only made the problem worse (if I manually copied msvcr100d.dll, it then said it couldn't find msvcp110.dll).

Как я могу упаковать библиотеку времени выполнения с моим исполняемым файлом, чтобы я мог запускать ее на компьютерах, на которых не установлен MS VC 2010 или распространяемый дистрибутив?

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

@MichaelBurr Dependency Walker подтвердил, что одна из библиотек DLL, от которых зависит мой проект, зависит от msvcr100d.dll. Оказывается, что DLL не собиралась в режиме Release. Благодарю. mgiuffrida
Что вы имеете в виду, используя/MTError: User Rate Limit Exceededdependencywalker.com Michael Burr
@eli: Я не думаю, что люди действительно заботятся о риске безопасности, когда говорят, что не следует распространять библиотеку DLL, так как вы все равно можете статически связываться. Это больше проблема лицензирования, чем что-либо еще. Mehrdad
Именно из-за этой проблемы я перенес свой проект на VS 2008, и в Win 7 уже были необходимые библиотеки DLL. Farrukh Waheed

Ваш Ответ

5   ответов
1

которое пропускает .dll, указывает, какая версия вам нужна & # x2013; если один не работает, просто загрузите Microsoft Visual C ++ 2010 x86 или x64 по этой ссылке:

Error: User Rate Limit ExceededВот

Для 64-битной ОС:Вот

42

Вам определенно не нужна отладочная версия CRT, если вы компилируете в "release" Режим. Вы можете сказать, что они являются отладочными версиями DLL, потому что они заканчиваютсяd.

Error: User Rate Limit Exceedednot распространяемый, так что это не так просто, как «упаковка» это с вашим исполняемым файлом, или архивировать эти библиотеки DLL.

Error: User Rate Limit Exceededall компоненты вашего приложения в «выпуске» и что вы связываете правильную версию CRT и любых других используемых вами библиотек (например, MFC, ATL и т. д.).

Выwill, конечно, требуютmsvcr100.dllError: User Rate Limit Exceededd суффикс) и некоторые другие, если они еще не установлены. Направьте своих друзей, чтобы загрузитьVisual C ++ 2010 распространяемый (или жеx64), или включите это в ваше приложение автоматически, собрав установщик.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededmsvcr100d.dllError: User Rate Limit Exceeded
2

Эта проблема объяснена вБиблиотека MSDNError: User Rate Limit Exceeded

Но иногда может использоваться следующее решение (в качестве решения на стороне разработчика):

В вашей Visual Studio откройтеProject properties -> Configuration properties -> C/C++ -> Code generation и изменить опциюRuntime LibraryError: User Rate Limit Exceeded/MT вместо/MD

1

Отладочная версия библиотеки библиотеки vc ++ НЕ предназначена для распространения!

Debug versions of an application are not redistributable, and debug versions of the Visual C++ library DLLs are not redistributable. You may deploy debug versions of applications and Visual C++ DLLs only to your other computers, for the sole purpose of debugging and testing the applications on a computer that does not have Visual Studio installed. For more information, see Redistributing Visual C++ Files.

Error: User Rate Limit Exceededhttp://msdn.microsoft.com/en-us/library/aa985618.aspx

2

Для меня проблема появилась в этой ситуации:

Я установил VS2012 и больше не нуждался в VS2010. Я хотел очистить свой компьютер, а также удалил исполняемые файлы VS2010, думая, что никакая другая программа не будет его использовать. Затем я хотел проверить свою DLL, прикрепив ее к программе (назовем ее программой X). Я получил то же сообщение об ошибке. Я думал, что я сделал что-то не так при компиляции DLL. Однако реальная проблема заключалась в том, что я подключил DLL к программе X, и программа X была скомпилирована в VS2010 с отладочной информацией. Вот почему ошибка была брошена. Я перекомпилировал программу X в VS2012, и ошибка исчезла.

Похожие вопросы