Ответ 1
Не поддерживается в 64-битных системах, проблемах совместимости с Vista, и 8 апреля 2008 г. Microsoft была отключена от расширенной поддержки.
У меня есть клиент, который все еще использует Visual Studio 6 для создания производственных систем. Они пишут многопоточные системы, которые используют STL и работают на машинах с несколькими процессорами.
Иногда, когда они меняют спецификацию или увеличивают нагрузку на одну из своих серверных машин, они становятся "странными", трудно воспроизвести ошибки...
Я знаю, что есть несколько проблем с разработкой Visual Studio 6, и я бы хотел убедить их перейти на Visual Stuio 2005 или 2008 (они имеют Visual Studio 2005 и используют его для некоторых проектов).
Цель этого вопроса - собрать список известных проблем или причин для обновления вместе со ссылками на то, где эти вопросы обсуждаются или сообщаются. Было бы также полезно иметь "ужасные истории" реальной жизни о том, как эти проблемы укусили вас.
Не поддерживается в 64-битных системах, проблемах совместимости с Vista, и 8 апреля 2008 г. Microsoft была отключена от расширенной поддержки.
Непакет VC6 STL не является потокобезопасным. См. Здесь http://www.amanjit-gill.de/articles/vc6_stl.html, патчи aren ' t включены в пакеты обновления, и вы должны получить их непосредственно от Dinkumware (отсюда http://www.dinkumware.com/vc_fixes.html), а затем примените их к каждой установке...
Самая большая проблема, которую мы видели на моем рабочем месте, - это неспособность обрабатывать даже незначительно сложные шаблонные классы или функции. Только этот факт заставил некоторых из самых преданных поклонников VS6 в компании обновить и начать использовать VS2005. Помимо проблемы с шаблоном, intellisense намного лучше, отладка проще и точнее, и многие люди находят, что IDE легче ориентироваться. Единственный недостаток, который мы видели до сих пор, заключается в том, что в 2005 году сборка занимает немного больше времени, чем в 6 (но это, вероятно, побочный эффект компилятора более надежный)
Вы также можете проверить эти сайты для выборки известных проблем в VS6:
Я уверен, что вы могли бы найти больше, если бы немного потрудились.
VS6 не компилирует код в соответствии с текущим стандартом C/С++. Например,
new не соответствует спецификации С++ и не генерирует исключений при сбое размещения, исправление это нетривиально.
см.: http://msdn.microsoft.com/en-us/magazine/cc164087.aspx p >
Одной из самых серьезных причин для меня было стандартное совместимое компилятор С++ (хотя все еще не 100%), поэтому я мог использовать больше возможностей С++ в своих проектах и не беспокоиться о странных хаках и обходных решениях, которые могут найти ошибки.
Совместимость с Vista. Черт возьми, есть длинный список проблем, которые VS 2005 имеет с Vista.
Как говорится, большинство улучшений в VS, похоже, применимы ко всему, кроме собственного кода С++. То, что я вижу, - это соответствие стандартам, что важно, но вряд ли драматично.
Visual Studio 6 несовместим с последними Windows SDK, поэтому он не может использовать (по крайней мере легко) новейшие функции ОС.
Хотя у меня больше нет конкретных деталей, я просто добавлю, что, когда мы обновили работу, новый компилятор обнаружил немало ошибок, которые VC 6 проскальзывал спокойно. Повышенная надежность продукта сразу же после обновления.
Если они используют STL, они могут быть заинтересованы в недавно выпущенном пакете который включает в себя реализацию TR1.
Я обновил свой материал, но он относительно несложный. Переход к обновлению VS 2005 DLL Hell
VS200 версия STL компилируется с /clr
, поэтому, если они заинтересованы в переходе на управляемый мир, им не нужно терять весь свой старый код.
В defoult более новые версии имеют лучший компилятор и лучшие библиотеки. Но не всегда легко переносить существующие проекты на более новую студию, и вы можете обновлять как компилятор, так и библиотеки вручную.
Я использовал VS 6.0 с компилятором Intel всего год назад. Тогда у нас просто была куча старого кода, который вызывал итераторы в качестве указателей и наоборот, и все это было бесполезно и страшно, так что это удержало нас от обновления.
Но мне все-таки пришлось обновить, потому что используемая мной инфраструктура просто не запускается на VS 6.0. Подумайте, это предельная причина: -)
Библиотеки сторонних разработчиков поддерживают только ограниченное количество компиляторов. В результате ваш клиент не сможет принимать исправления или обновления функций.
Например, даже широко используемая библиотека в качестве Boost поддерживает только VS 7.1 и более поздние версии (источник)
И у вас могут быть некоторые проблемы с предотвращением выполнения данных (DEP), потому что VC6 поставляется со старой версией ATL. Как обычно, подробнее см. Raymond Chen.