Как скомпилировать C++ программу в Visual Studio 2010, чтобы она работала в Windows 2000?


Программы, собранные при помощи новой версии компилятора Visual C++, включённого в состав среды разработки Visual Studio 2010, не могут более исполняться в ОС семейства Windows ниже версии Windows XP SP2. Данная проблема вызвана включением в runtime-библиотеки Visual C++ обращений к API функции EncodePointer, которая появляется только во 2-ом пакете обновлений Windows XP.

Для сборки работоспособного в WIndows 2000 приложения из среды Visual Studio 2010 можно воспользоваться новой функциональностью Visual C++ 10 — многоцелевой сборкой (multi-targeting). Такой вид сборки позволяет компилировать приложения из VS2010 с использованием компилятора, компоновщика и библиотек из предыдущих версий Visual C++ при условии их наличия в системе. Выбрать целевую платформу можно в настройках проекта (General/Platform Toolset). Пути к необходимым для сборки на целевой платформе инструментам и библиотекам заданы в props-файлах, находящихся в каталоге %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\Platforms\<Platforms>\PlatformToolsets. Более подробно данный вопрос освещён в блоге группы разработчиков Visual C++.

Следует также заметить, что использование многоцелевой сборки позволит избавиться от необходимости иметь несколько версий проектных файлов в случае, когда разрабатываемая программа должна поддерживаться в различных версиях Visual C++.

Библиографический список



Найдите ошибки в своем C, C++, C# и Java коде

Предлагаем попробовать проверить код вашего проекта с помощью анализатора кода PVS-Studio. Одна найденная в нём ошибка скажет вам о пользе методологии статического анализа кода больше, чем десяток статей.

goto PVS-Studio;



Найденные ошибки

Проверено проектов
346
Собрано ошибок
13 188

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;