Visual Studio C ++ MSVCR100.dll ошибка времени выполнения - PullRequest
0 голосов
/ 21 декабря 2011

Я разрабатываю приложение в Visual Studio 2010. Исполняемый файл отладки и выпуска прекрасно работает на моем ПК, но когда я пытаюсь запустить его на другом ПК, http://www.rhyous.com/2010/09/16/avoiding-the-msvcr100-dll-or-msvcr100d-dll/ Поиск в Интернете показывает, что вам нужно установить распространяемый Visual C ++.

Есть ли способ построить проект так, чтобы распространяемый VC ++ не требовался?

Ответы [ 2 ]

2 голосов
/ 21 декабря 2011

Как отмечалось на странице, на которую вы ссылаетесь, вы можете статически встраивать библиотеки в свое приложение, что гарантирует их постоянное включение.Это делается в свойствах проекта -> C / C ++ -> Генерация кода -> Библиотеки времени выполнения (выберите многопоточную или отладочную, без DLL ).

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

Когда это возможно, вы должны использовать DLL изсистема, чтобы позволить будущие исправления безопасности применить к вашей программе.Распространяемый объем составляет несколько МБ и совместим с различными версиями ОС, поэтому попросить пользователей установить его или даже включить его в установщик обычно не проблема.

Возможно, избежать их использования полностью возможно, ночуть менее выполнимо.Вам следует избегать любого кода, который они предоставляют, а MSVCR является эквивалентом libc;большинство программ используют его функции, и это стандартная часть системы.

0 голосов
/ 21 декабря 2011

Да, вы можете связать ЭЛТ статически (проверьте настройки проекта).Но это приведет к увеличению размера исполняемого файла.

...