Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

Оператор

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

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

Ответ 6

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

Ответ 7

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

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

Ответ 8

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

Ответ 9

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

Ответ 11

Я обновил свой материал, но он относительно несложный. Переход к обновлению VS 2005 DLL Hell

Ответ 12

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

Ответ 13

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

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

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

Ответ 14

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

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

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