Вопрос

Я просил свою команду портировать наше приложение vc6 на vc2005, они готовы выделить время на то же самое. Теперь им нужно знать, в чем преимущество портирования.

Я не думаю, что они действительно понимают, что значит придерживаться стандартов.

Помогите мне перечислить преимущества портирования.

Проблема, с которой я столкнулся, заключается в

1) Нет поддержки отладки стандартных контейнеров.

2) Невозможно использовать библиотеки повышения.

3) Мы используем много генерации запросов, но используем функцию формата CString, которая не является типобезопасной.

4) Много времени тратится на устранение проблем с vc6, например >>

vector<vector<int>>

без пробела между >>

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

Решение

Преимущества:

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

  • Не поддерживается MS. Новый SDK не работает.64-битная не работает.И я не думаю, что они все еще исправляют ошибки.

  • Удобнее IDE. Лично я предпочитаю вкладки MDI.Я также считаю, что гораздо проще настроить Visual Studio (создать собственные ярлыки, строки меню и т. д.).Конечно, это субъективно.Посмотрите экспресс-издание и посмотрите, согласны ли вы.

  • Улучшенная поддержка плагинов. Некоторые плагины недоступны для VC6.

Недостатки:

  • Время, необходимое для порта. Это во многом зависит от того, какой у вас код.Если в вашем коде активно используются функции VC6, не соответствующие стандартам, это может занять некоторое время.Как сказал Эндрю, если вы поддерживаете старый устаревший проект, возможно, оно того не стоит.

  • Худшая производительность. Если вы разрабатываете на очень старых компьютерах, Visual Studio может работать слишком медленно.

  • Расходы Я только что бегло посмотрел, и лицензии Visual Studio кажутся немного дороже, чем у VC6.

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

Почему VC2005? Если вы собираетесь потратить время (и тестирование!) На обновление с VC6, почему бы не нацелиться на VC2008?

Если вы поддерживаете устаревший проект, портирование может оказаться бесполезным. Простое преобразование проектов и исправление проблем с компилятором может занять недели и привести к нестабильности.

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

  • Более поздние версии Windows SDK не работают с VC6 — если вы хотите использовать новейшие функции Windows, вам понадобится более новый компилятор.
  • Говорят, что более поздние компиляторы в большей степени соответствуют стандартам.Извините, я не могу быть более конкретным.Я знаю, что VC6 генерирует множество предупреждений компилятора только при использовании стандартных классов шаблонов.
  • Если вы используете какие-либо внешние библиотеки, скомпилированные с помощью более поздней версии компилятора, вам необходимо использовать что-то совместимое.

Приготовьтесь к жесткому переходу — IDE более разные, чем должны быть.

Для обеспечения полной совместимости приложения с различными версиями базовой платформы. И исправить все найденные ошибки, чтобы у конечного пользователя было достаточно свободы в использовании своей версии базовой платформы.

Я не говорю, что вам не следует конвертировать, но хочу отметить ваши конкретные моменты:

1)Отсутствие поддержки отладки для стандарта контейнеры

Я постоянно отлаживаю код, используя стандартные контейнеры с VC++ 6.Какая у тебя здесь проблема?

2) Невозможно использовать библиотеки повышения.

Истинный.Вы можете обнаружить, что можете использовать некоторые более простые вещи.

3)Много времени потрачено на неприятности стрельба vc6 проблемы, как иметь >>

[не могу заставить ТАК перестать это искажать, примечание]

без пробела между >>

Хм, это ошибка синтаксиса (по крайней мере, в версии C++, понимаемой VC++6) и будет помечен как таковой.Если ваша команда тратит «много времени» на подобные вещи, вам нужна другая команда.

Редактировать:

3)Мы используем много генерации запросов, но использовать функцию формата CString, которая не тип сейф

В VS2005 это будет одинаково небезопасно с точки зрения типов.Не понимаю, почему это повод для портирования.Если вам нужна безопасность типов, используйте стандартные механизмы ввода-вывода C++.

Если ваша команда не видит никаких преимуществ, а вы не можете объяснить какие-либо преимущества, почему вы просите их сделать это?

Похоже, вы портируете только ради этого.

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