8

Редактировать примечание: после кажущегося огромного количества плохой обратной связи MS получила от своих клиентов относительно капли-XP-stunt, они have announced, что будет выпущен патч, который позволит создавать исполняемые файлы для XP. Итак, база для этого Q больше не существует, но я думаю, что она собирает очень интересную информацию.Является ли потерянная поддержка Windows XP в VS11 сопоставимой с предыдущими версиями Visual Studio?


Как установлено здесь: What is special about the executables compiled with Visual Studio 11 which results in that the executables cannot be executed on Windows XP?

и в этом Connect ошибка/вопрос: https://connect.microsoft.com/VisualStudio/feedback/details/690617, Visual Studio 11 (планируемый выпуск 2012) не планируется больше не будет поддерживать Windows XP.

Это значит , вы не можете создать собственный исполняемый файл C++, который может быть выполнен в Windows XP. (. Одна из причин в том, что новый CRT будет использовать вызовы Windows API, которые доступны только в Windows Vista и выше)

В one answer, Андерс пишет:

Они, кажется, отказаться от поддержки старых систем в каждом новый выпуск VS (NT4,2000, XP) ...

Что интересует меня сейчас, является ли этот шаг Microsoft, чтобы полностью отказаться от поддержки Windows XP из VS11 C++ может фактически быть по сравнению с предыдущими выпусками.

Что я имею в виду, когда была поддержка, для которой ОС (NT3.5/NT4/2000sp6 // Win95/Win98/...) полностью удалена из Visual C++. (и «какая часть» Visual C++ - компилятор, CRT, Windows SDK?)

Например, я думаю, что я знаю, что VC6 является последней версией VS, которая может использоваться для создания исполняемых файлов, которые запускаются на Windows NT4. Я также помню, что потерянная поддержка Win2k была больше связана с используемым вами SDK Windows, чем с фактическим компилятором или CRT, но я не уверен.

Есть ли хороший ресурс, который показывает, какие MS-компиляторы могут устанавливать совместимый код для версий ОС? Является ли время VS11 (год 2012) больше не поддерживающим широко распространенную (но уже не продаваемую) ОС сравнимую с предыдущими версиями?


Одна точка интереса является то, что мы находимся в середине перехода от C++ 03 для C++ 11, и если вы застряли с Windows XP и VC10, на которую вы застряли с ограниченной (и частично нестандартной) поддержкой C++ 11, которую он может предложить.

+4

Я помню, что очень сердится, когда VS 4 вышел, потому что, если мои клиенты не двигаться до W95 они не могли запускать приложения, которые я написал с ним. Я получил это, хотя :-) –

ответ

8

Я думаю, что это имеет смысл сравнить VS дату выпуска против когда версия Windows, стала без поддержки, а не когда были выпущены версии для Windows.

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

Материал из Википедии, это когда каждая версия Windows, стала (или станет) не поддерживается корпорацией Майкрософт:

  • январь 2020: Windows 7
  • апреля 2017: Windows Vista
  • апреля 2014: Windows XP
  • июля 2010: Windows 2000
  • июля 2006: Windows ME
  • июля 2006: Windows 98
  • июня 2004: Windows NT 4
  • декабря 2001: Windows 95
  • декабря 2001: Windows NT 3

Привязав, что детали в существующем ответе:

  • VS в 2012 году упал Windows XP, несмотря на то, что он поддерживается до 2014 года.
  • VS в 2010 году упал Windows 2000, срок действия которого истек.
  • VS в 2007 году упал Win98/ME, оба из которых уже истекли.
  • VS в 2005 году упал Win95 и NT4, оба из которых уже истекли.

Итак, похоже, что VS2012 - это первая версия, которая откажется от поддержки ОС, которая сама по-прежнему будет поддерживаться, по крайней мере, еще на один год. Предполагая, что все эти даты верны (я не проверял их дважды, делал это в основном для моего любопытства).

+1

[Эта страница MS] (http://support.microsoft.com/gp/lifeselectwin) содержит ссылки на все даты поддержки Windows (и некоторые). Для тех, которые я проверил, [wikipedia] (http://en.wikipedia.org/wiki/Windows#History), и ваш список кажется правильным. –

+0

2005 также упал NT4 - см. Http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/2435c3ab-f732-467e-8224-5f4e3f12c10b/ –

+0

Также хорошее резюме в комментарии к VC++ сообщение в блоге: http://blogs.msdn.com/b/vcblog/archive/2012/04/18/10295093.aspx#10295293 –

4

Предполагая, что вы говорите только о минимально поддерживаемых 32-разрядных десктопных выпусках Windows и поддержке клиентов от Microsoft.

  • VC11 (у 2012): Windows Vista (у 2007)
  • VC10 (y2010): Windows XP SP3 (у 2008/2001)
  • Windows SDK 6.1: Windows XP (у 2001)
  • VS2008 (y 2007): Windows 2000 SP4 (y 2003). Последнее обновление для системы безопасности опустило поддержку Windows 2000.
  • Обновление Windows SDK для Windows Vista: Windows 2000 (y 2000)
  • VS2005 (y 2005): Windows 98 (y 1998), Windows 2000 с пакетом обновления 3 (SP3), Windows XP, Windows NT 3 (y 1993). SP1 упал на 9 раз. Последнее обновление для системы безопасности опустило поддержку Windows 2000.
  • VC6 (y 1998): Windows 95 (y 1995), Windows NT ??
    • Компилятор может быть повышен с помощью Visual C++ Toolkit 2003
    • Platform SDK может быть обновлен до версии Windows 2003 SDK Февраль 2003.

Поддержка 64-битной ОС изменяется, но хороший показатель, является ли целевой ОС по-прежнему поддерживается на момент выпуска. Первой стабильной версией SDK с поддержкой 64 бит является VC2005.

Hacks (может вызвать больше проблем вниз по дороге)

  • Patch исполняемый
    • Visual C++ компилятор: Существует/SUBSYSTEM и/OSVersion переключатель которого можно изменить значение по умолчанию в течение долгого времени, но вы можете легко изменить значение с помощью коммутатора компилятора или с помощью шестнадцатеричного редактора, если вы знаете формат PE.
    • Modify the executable, чтобы удалить новые вызовы API, если вы уверены, что код, вызывающий новый API, не будет затронут в вашей программе.
  • CRT/MFC/ATL
    • Make a private build использование different build options или перекомпилировать старые версии, если у вас есть исходный код и не можете удалить новые вызовы API из новой версии.
    • Дурайте компоновщик, чтобы связать его с собственной реализацией функций фрейма. Это used to reduce the size of MFC apps, но это также может отбрасывать зависимости, такие как GDI + во время процесса.
2

Microsoft объявила, что поддержка создания приложений на C++, ориентированных на Windows XP, будет включена в Visual Studio 2012, поэтому 2012 год сравним с предыдущей версией Visual Studio в этом отношении.

http://blogs.msdn.com/b/vcblog/archive/2012/06/15/10320645.aspx

+0

спасибо за это обновление. Думаю, мне придется обновить вопрос соответственно –

Смежные вопросы