Вопрос

После компиляции простого проекта C++ с использованием Visual Studio 2008 на Vista все работает нормально на исходной машине Vista и других компьютерах Vista.Однако перемещение его в окно XP приводит к появлению сообщения об ошибке:«Приложение не удалось запустить, поскольку конфигурация приложения неверна».

Что мне нужно сделать, чтобы мой скомпилированный EXE-файл работал в XP и Vista?У меня была такая же проблема несколько месяцев назад, и я просто поиграл с некоторыми настройками проекта, чтобы исправить ее, но я не помню, какие из них я изменил.

Это было полезно?

Решение

Вам необходимо установить среду выполнения Visual Studios 2008 на целевой компьютер:

http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en

В качестве альтернативы вы также можете статически связать время выполнения, в окне свойств проекта перейдите к:

C ++ -> Generation -> Библиотека времени выполнения и выберите «Многопользованный /MT»

Другие советы

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

Распространяемый файл за 2008 год: здесь.

Распространяемый файл за 2005 год: здесь.

Их можно установить рядом, если вам нужны оба.

Вероятно, вам потребуется распространять среду выполнения VC вместе с вашим приложением.Есть множество способов сделать это. Эта статья от команды Microsoft Visual C++ лучше всего объясняет различные способы распространения этих зависимостей, если вы используете Visual Studio 2005 или 2008.

Как указано в статье, хотя вы можете загрузить распространяемый установочный пакет и просто запустить его на клиентском компьютере, это почти всегда не оптимальный вариант.Обычно есть более эффективные способы включения необходимых DLL, например включение модуля слияния, если вы распространяете через программу установки Windows, или копию App-Local, если вы просто хотите распространять заархивированную папку.

Другой вариант — статически связать библиотеки времени выполнения вместо того, чтобы распространять их вместе с приложением.Этот вариант подходит только для автономных EXE-файлов, которые не загружают другие библиотеки DLL.Вы также не можете сделать это с DLL, загружаемыми другими приложениями.

Гораздо проще всего статически связать среду выполнения.

c++ -> Генерация кода -> Библиотека времени выполнения и выберите «многопоточный/MT»

Однако это увеличивает размер исполняемого файла на пару сотен Кбайт.Это может стать проблемой, если вы устанавливаете большое количество небольших программ, поскольку каждая из них будет обременена своей собственной копией среды выполнения.Ответ — создать установщик.

Новый проект -> «установка и развертывание» -> «проект установки»

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

В Visual Studio 2005 на самом деле есть два

Тот, для оригинальный выпуск

и тот для SP1

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top