Я просто хотел подчеркнуть часть использования для указателя на указатель. Большинство из этих затронуто другими сообщениями, но я думал, что повторение могло бы помочь.
Это позволяет вызываемому , изменяют указатель, принадлежавший вызывающей стороне. Например, можно было передать указатель на указатель на начало строки, и вызываемый мог изменить указанный указатель, чтобы теперь указать на положение в строке, где конкретный символ происходит.
, поскольку массивы ухудшаются к указателям (и указатели может рассматриваться как массивы), Вы будете часто видеть указатель на указатель, если Вы будете иметь:
указатель А на массив. Это - обобщение вышеупомянутого случая, так как "строка" (строка C-стиля, так или иначе) является действительно просто массивом char
с.
массив указателей. У Вас мог бы, например, быть массив указателей на объекты, позволяя, чтобы полиморфизм или массив указателей выбрал объекты, хранившие в другом наборе.
массив массивов. Снова, массивы ухудшаются к указателям, таким образом, это - конкретный случай вышеупомянутого. Это часто используется для так называемых "зубчатых" массивов (в противоположность прямоугольному).
Отчасти это может быть потому, что более ранние компиляторы часто (хотя и не всегда) быстрее, чем более поздние, и более многофункциональные / соответствующие стандартам. Я не знаю, применимо ли это к VC6 или более поздним версиям, но вполне может быть.
В случае VC6 я думаю, что двумя основными факторами являются то, что IDE намного быстрее в использовании, чем любая другая. болезненно медленных и жадных IDE Visual Studio 200x, и что существует огромное количество устаревшего кода, который не будет компилироваться с более поздними и более совместимыми со стандартами компиляторами VC ++.
Единственное, что я могу придумать из-за того, что Visual Studio 6 не поддерживает .Net (в частности, C ++. Net), и поэтому, если вы пишете что-то исключительно в неуправляемом коде, вам не нужно иметь дело с настройками проекта, которые применяются к управляемому коду.
Также , некоторая устаревшая база кода может быть написана с помощью VS6, и они не хотят иметь дело с обновлением базы кода для компиляции в новых выпусках Visual Studio. Особенно, если база кода большая и сложная, или имеет много сторонних зависимостей, или используется со старыми инструментами (например, Purify).
Лучше спросить, будут ли люди начинать новый проект с MSVC ++ в VS6 или VS 2008 ... (нет устаревших проблем)
Это устаревшая вещь. На VC6 написано слишком много кода. Между ним и VS 2003 было 4 года. Перетаскивать код в новый компилятор всегда болезненно, поэтому многие разработчики и менеджеры просто не хотят этого делать.
Помимо большого количества «устаревшего» кода (как указывают другие ответы), для многих проектов существует гораздо более прямая причина: зависимости.
DLL времени выполнения для Visual Studio 6 поставляется практически на каждом ПК, начиная с Windows 98. Это единственная среда выполнения, на которую вы можете рассчитывать, будучи установленной в системе пользователя, а это означает, что вам не обязательно поставлять DLL среды выполнения с вашим приложением. Достаточно простого копирования исполняемого файла (несмотря на другие проблемы с установкой).
Если вы используете Visual C ++ 2008, вам нужно беспокоиться о доставке правильной версии MSVCR90.DLL
, MSVCP90. DLL
(и потенциально многие другие ), и правильно установить библиотеки DLL с помощью параллельного механизма (что обычно означает создание установщика msi
).
Я знаю по крайней мере один подключаемый модуль браузера, который полагается на это, чтобы избежать необходимости загружать время выполнения на машине пользователя, что фактически удвоит размер дистрибутива
TL; DR? Так проще!
:) Я работаю над VC6 на работе и дома. Обе причины:
На работе: -> Наш унаследованный код основан на VC6, поэтому нет другого варианта использовать это.
Дома
-> Еще со времен колледжа я использую только это, поэтому я не хочу переходить на более новые.
- > Я пробовал 2005 и 2008 и Express Edition, но не хочу использовать, потому что
-> Они очень тяжелые с точки зрения процесса и памяти, и медленные по сравнению с vc6
-> Я верю в простоту и чувствительность , я обнаружил, что более новую версию труднее используйте затем vc6
Visual Studio 2008 имеет ключи компиляции, которые могут гарантировать совместимость с VS6. Я думаю, причина в том, что Visual Studio не бесплатна. Это стоит больших денег, если мы говорим о достаточно больших командах.
Мне просто интересно, почему программисты , которые программируют на C ++ для Windows, всегда используют Visual Studio 6 вместо Visual Studio 2008?
Ответ: Они этого не делают . Я бы сказал, что сейчас очень небольшое количество проектов используют MSVC ++ 6
Разве компилятор 2008 года не намного лучше , чем компилятор в VS6?
Ответ: Да, это так. намного лучше, и инструменты IDE тоже.
Я спрашиваю, почему я использовал много SDK, которые всегда написаны на VS6?
Ответ: это, вероятно, старые библиотеки, появившиеся очень давно ... большинство библиотек я see были перенесены на более новые версии VC ++ или предоставляют .SLN ТАКЖЕ как .DSW.
Могу я спросить, где вы находите эти старые библиотеки? Они все еще в стадии разработки? Являются ли они общедоступными или внутренними по отношению к компании, в которой вы работаете?
Основная причина, по которой кто-то до сих пор использует 6, - это инерция ... она работает, они ее знают и научились ее использовать, поэтому проблемы больше не видны.