Каковы некоторые убедительные аргументы для обновления с Visual Studio 6? - PullRequest
12 голосов
/ 10 октября 2008

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

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

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

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

Ответы [ 14 ]

18 голосов
/ 10 октября 2008

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

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

11 голосов
/ 10 октября 2008

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

10 голосов
/ 10 октября 2008

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

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

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

7 голосов
/ 10 октября 2008

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

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

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

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

1 голос
/ 18 сентября 2010

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

1 голос
/ 10 октября 2008

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

1 голос
/ 10 октября 2008

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

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

1 голос
/ 10 октября 2008

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

0 голосов
/ 10 октября 2008

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

Например, даже широко используемая библиотека в качестве Boost поддерживает только VS 7.1 и более поздние версии ( source )

И у вас могут возникнуть проблемы с предотвращением выполнения данных (DEP), поскольку VC6 поставляется со старой версией ATL. Как обычно, см. Раймонд Чен для деталей.

...