Неправильные компоненты среды выполнения C++

У меня есть сборка c++x32 vs 2008, и когда я попытался запустить ее на новой установке Windows 7 vm, я получаю следующую ошибку:

«Ошибка WINDOWS 7. Не удалось запустить приложение из-за неправильной параллельной конфигурации. Дополнительные сведения см. в журнале событий приложения или используйте инструмент командной строки sxstrace.exe».

Я нашел следующее разрешение:

В машине отсутствуют правильные компоненты среды выполнения C++ для вашего типа системы. (х86 или х64). Установка следующего обновления решает проблему. Распространяемый пакет Microsoft Visual C++ 2008 SP1 (x86)

Что касается подробностей о решениях vs 2008: я использую Unicode, я не использую ATL или MFC, только стандартные библиотеки Windows.

У меня вопрос: я что-то не так делаю? это нормально или есть способ преодолеть эту проблему на этапе разработки. Что я должен сделать, чтобы моя программа запустилась с первого раза.


person AlexandruC    schedule 16.09.2013    source источник
comment
Итак... вы установили распространяемый пакет? Это решило проблему?   -  person interjay    schedule 16.09.2013
comment
Нет, потому что я спрашиваю себя, есть ли способ не устанавливать его   -  person AlexandruC    schedule 16.09.2013
comment
Все программы, скомпилированные из Visual Studio, нуждаются в библиотеке времени выполнения (библиотеке, которая фактически содержит функции, используемые new, delete и другими функциями поддержки времени выполнения). Эта библиотека времени выполнения должна быть там, когда вы запускаете свою программу. Либо вы устанавливаете общие библиотеки, либо делаете свой проект статически связанным проектом, поэтому среда выполнения связана с вашей программой.   -  person Some programmer dude    schedule 16.09.2013
comment
Я стараюсь сделать сборку минимально возможной   -  person AlexandruC    schedule 16.09.2013
comment
Как вы статически связываете среду выполнения с вашей программой? что мне не хватает, чтобы включить мой проект?   -  person AlexandruC    schedule 16.09.2013
comment
ДА! @JoachimPileborg, ваш комментарий отвечает на мой вопрос, вы можете опубликовать его как ответ.   -  person AlexandruC    schedule 16.09.2013
comment
Хотя вы можете скомпилировать приложение, используя только стандартные библиотеки Windows, вы, как правило, также будете использовать CRT (C RunTime). Это часть Visual Studio (доступна как распространяемый компонент), а не компонент Windows. Вам нужно будет отправить CRT вместе с вашим приложением.   -  person IInspectable    schedule 16.09.2013


Ответы (1)


Все программы, скомпилированные из Visual Studio, нуждаются в библиотеке времени выполнения (библиотеке, которая на самом деле содержит функции, используемые функциями создания, удаления и другими функциями поддержки времени выполнения). Эта библиотека времени выполнения должна быть там, когда вы запускаете свою программу. Либо вы устанавливаете общие библиотеки, либо делаете свой проект статически связанным проектом, поэтому среда выполнения связана с вашей программой.

person Some programmer dude    schedule 16.09.2013