﻿# Как скомпилировать 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\. Более подробно данный вопрос освещён в [блоге](https://devblogs.microsoft.com/cppblog/c-native-multi-targeting/) группы разработчиков Visual C\+\+\. 

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

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

1. Обсуждение на сайте stackoverflow\.com\. [Issue using Visual Studio 2010 compiled C\+\+ DLL in Windows 2000](https://stackoverflow.com/questions/2664607/issue-using-visual-studio-2010-compiled-c-dll-in-windows-2000)\.
1. Visual C\+\+ Team Blog\. [C\+\+ Native Multi\-Targeting](https://devblogs.microsoft.com/cppblog/c-native-multi-targeting/)\.