Почему Visual Studio 6 использования для [закрытого] C++

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

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

  • , поскольку массивы ухудшаются к указателям (и указатели может рассматриваться как массивы), Вы будете часто видеть указатель на указатель, если Вы будете иметь:

    • указатель А на массив. Это - обобщение вышеупомянутого случая, так как "строка" (строка C-стиля, так или иначе) является действительно просто массивом char с.

    • массив указателей. У Вас мог бы, например, быть массив указателей на объекты, позволяя, чтобы полиморфизм или массив указателей выбрал объекты, хранившие в другом наборе.

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

7
задан RobS 7 October 2009 в 10:30
поделиться

7 ответов

Отчасти это может быть потому, что более ранние компиляторы часто (хотя и не всегда) быстрее, чем более поздние, и более многофункциональные / соответствующие стандартам. Я не знаю, применимо ли это к VC6 или более поздним версиям, но вполне может быть.

В случае VC6 я думаю, что двумя основными факторами являются то, что IDE намного быстрее в использовании, чем любая другая. болезненно медленных и жадных IDE Visual Studio 200x, и что существует огромное количество устаревшего кода, который не будет компилироваться с более поздними и более совместимыми со стандартами компиляторами VC ++.

16
ответ дан 6 December 2019 в 04:56
поделиться

Единственное, что я могу придумать из-за того, что Visual Studio 6 не поддерживает .Net (в частности, C ++. Net), и поэтому, если вы пишете что-то исключительно в неуправляемом коде, вам не нужно иметь дело с настройками проекта, которые применяются к управляемому коду.

Также , некоторая устаревшая база кода может быть написана с помощью VS6, и они не хотят иметь дело с обновлением базы кода для компиляции в новых выпусках Visual Studio. Особенно, если база кода большая и сложная, или имеет много сторонних зависимостей, или используется со старыми инструментами (например, Purify).

Лучше спросить, будут ли люди начинать новый проект с MSVC ++ в VS6 или VS 2008 ... (нет устаревших проблем)

4
ответ дан 6 December 2019 в 04:56
поделиться

Это устаревшая вещь. На VC6 написано слишком много кода. Между ним и VS 2003 было 4 года. Перетаскивать код в новый компилятор всегда болезненно, поэтому многие разработчики и менеджеры просто не хотят этого делать.

14
ответ дан 6 December 2019 в 04:56
поделиться

Помимо большого количества «устаревшего» кода (как указывают другие ответы), для многих проектов существует гораздо более прямая причина: зависимости.

DLL времени выполнения для Visual Studio 6 поставляется практически на каждом ПК, начиная с Windows 98. Это единственная среда выполнения, на которую вы можете рассчитывать, будучи установленной в системе пользователя, а это означает, что вам не обязательно поставлять DLL среды выполнения с вашим приложением. Достаточно простого копирования исполняемого файла (несмотря на другие проблемы с установкой).

Если вы используете Visual C ++ 2008, вам нужно беспокоиться о доставке правильной версии MSVCR90.DLL , MSVCP90. DLL потенциально многие другие ), и правильно установить библиотеки DLL с помощью параллельного механизма (что обычно означает создание установщика msi ).

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

TL; DR? Так проще!

4
ответ дан 6 December 2019 в 04:56
поделиться

:) Я работаю над VC6 на работе и дома. Обе причины:

На работе: -> Наш унаследованный код основан на VC6, поэтому нет другого варианта использовать это.

Дома

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

- > Я пробовал 2005 и 2008 и Express Edition, но не хочу использовать, потому что

-> Они очень тяжелые с точки зрения процесса и памяти, и медленные по сравнению с vc6

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

2
ответ дан 6 December 2019 в 04:56
поделиться

Visual Studio 2008 имеет ключи компиляции, которые могут гарантировать совместимость с VS6. Я думаю, причина в том, что Visual Studio не бесплатна. Это стоит больших денег, если мы говорим о достаточно больших командах.

0
ответ дан 6 December 2019 в 04:56
поделиться

Мне просто интересно, почему программисты , которые программируют на C ++ для Windows, всегда используют Visual Studio 6 вместо Visual Studio 2008?

Ответ: Они этого не делают . Я бы сказал, что сейчас очень небольшое количество проектов используют MSVC ++ 6

Разве компилятор 2008 года не намного лучше , чем компилятор в VS6?

Ответ: Да, это так. намного лучше, и инструменты IDE тоже.

Я спрашиваю, почему я использовал много SDK, которые всегда написаны на VS6?

Ответ: это, вероятно, старые библиотеки, появившиеся очень давно ... большинство библиотек я see были перенесены на более новые версии VC ++ или предоставляют .SLN ТАКЖЕ как .DSW.

Могу я спросить, где вы находите эти старые библиотеки? Они все еще в стадии разработки? Являются ли они общедоступными или внутренними по отношению к компании, в которой вы работаете?

Основная причина, по которой кто-то до сих пор использует 6, - это инерция ... она работает, они ее знают и научились ее использовать, поэтому проблемы больше не видны.

2
ответ дан 6 December 2019 в 04:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: