Каковы некоторые убедительные аргументы в пользу обновления с Visual Studio 6?

StackOverflow https://stackoverflow.com/questions/191253

Вопрос

У меня есть клиент, который все еще использует Visual Studio 6 для создания производственных систем.Они пишут многопоточные системы, которые используют STL и работают на многопроцессорных машинах.

Иногда, когда они меняют спецификацию или увеличивают нагрузку на одну из своих серверных машин, они получают "странные", трудно воспроизводимые ошибки...

Я знаю, что есть несколько проблем с разработкой Visual Studio 6, и я хотел бы убедить их перейти на Visual Studio 2005 или 2008 (у них есть Visual Studio 2005 и они используют его для некоторых проектов).

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

Это было полезно?

Решение

Не поддерживается в 64-разрядных системах, проблемы совместимости с Vista, и 8 апреля 2008 г. Microsoft прекратила расширенную поддержку

http://msdn.microsoft.com/en-us/vbrun /ms788708.aspx

Другие советы

Непатентованный VC6 STL не является поточно-ориентированным. Смотрите здесь http://www.amanjit-gill.de/articles/vc6_stl.html , патчи не включены в пакеты обновления, и вы получать их напрямую от Dinkumware (здесь http://www.dinkumware.com/vc_fixes.html ), а затем применить их к каждой установке ...

Самая большая проблема, с которой мы столкнулись на моем рабочем месте, - это неспособность обрабатывать даже незначительно сложные шаблонные классы или функции.Один только этот факт заставил некоторых из самых преданных поклонников VS6 в компании перейти на обновление и начать использовать VS2005.В дополнение к проблеме с шаблоном, intellisense намного лучше, отладка проще и точнее, и многие люди считают, что в IDE легче ориентироваться.Единственным недостатком, который мы видели до сих пор, является то, что сборки в 2005 году занимали немного больше времени, чем в 6 (но это, вероятно, побочный эффект более надежного компилятора)

Вы также можете ознакомиться с выборкой известных проблем в VS6 на этих сайтах:

Я уверен, вы могли бы найти больше, если бы немного покопались.

VS6 не компилирует код в соответствии с текущим стандартом C / C ++.Например,

  • он содержит неправильные (устаревшие) правила определения области видимости для циклов.По крайней мере, один MSFT SDK теперь обновлен кодом, который ожидает правильную семантику, поэтому SDK больше даже не будет компилироваться с VS6.
  • У него есть проблемы с возможностью компиляции всех шаблонных конструкций, кроме самых тривиальных.
  • Он скомпилирует некоторые шаблонные конструкции, которые были объявлены незаконными в последних обновлениях стандартов (потому что конструкции на самом деле не выполняют того, чего ожидают обычные пользователи).

оператор new не соответствует спецификации C ++ и не вызывает исключений при сбое выделения, исправление этого не тривиально.

см. http://msdn.microsoft.com/en-us/magazine/cc164087.aspx

Одной из главных причин, по которой я обновился, был стандартный компилятор C ++ ( хотя все еще не на 100%), поэтому я мог использовать больше возможностей C ++ в своих проектах и не беспокоиться о странных взломах и обходных путях, которые могут привести к трудноуловимым ошибкам.

Не совместимо с Vista. Черт, есть длинный список проблем, которые VS 2005 имеет с Vista.

При этом большинство улучшений в VS, похоже, применимы ко всему, кроме нативного кода C ++. Я вижу больше соответствия стандартам, что важно, но вряд ли драматично.

Visual Studio 6 несовместим с последними Windows SDK, поэтому он не может использовать (по крайней мере, легко) последние функции ОС.

Хотя у меня больше нет конкретных деталей, я просто добавлю, что, когда мы обновились на работе, новый компилятор обнаружил довольно много ошибок, которые VC 6 пропускает незаметно. Повышенная надежность продукта только после обновления.

Если они используют STL, их может заинтересовать недавно выпущенный пакет функций , который включает в себя реализацию TR1 .

Версия STL для VS 2008 компилируется с / clr , поэтому, если они заинтересованы в переходе в управляемый мир, им не нужно терять весь свой старый код.

По умолчанию более новые версии имеют лучший компилятор и лучшие библиотеки. Но портировать существующие проекты в новую студию не всегда просто, и вы можете вручную обновить как компилятор, так и библиотеки.

Я использовал VS 6.0 с компилятором Intel только год назад. У нас тогда была куча старого кода, который представлял собой итераторы как указатели, и наоборот, и все это было очень грязно и страшно, так что это остановило нас от обновления.

Но мне все-таки пришлось обновиться, потому что фреймворк, который я сейчас использую, просто не работает на VS 6.0. Думаю, это главная причина: -)

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

Например, даже широко используемая библиотека в качестве Boost поддерживает только VS 7.1 и более поздние версии ( Раймонд Чен для получения подробной информации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top