Различные версии библиотек C ++ - PullRequest
2 голосов
/ 18 сентября 2008

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

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

Ответы [ 5 ]

6 голосов
/ 18 сентября 2008

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

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

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

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

1 голос
/ 18 сентября 2008

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

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

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

1 голос
/ 18 сентября 2008

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

Распространяется в 2008 году здесь .

Распространяется в 2005 году здесь .

Они могут быть установлены бок о бок, на случай, если вам понадобится оба.

0 голосов
/ 18 сентября 2008

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

Один для оригинального выпуска

и один для SP1

0 голосов
/ 18 сентября 2008

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

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

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

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

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

...