В чем разница между Visual С++ и С++?

Ну вот довольно глупый вопрос. Является ли Visual С++ просто IDE? Или это сам язык для win32? Какая разница между этими двумя? Это я прошу, потому что я пытался использовать некоторые из моих старых С++ -кодов на VС++ 2008, и он не компилировался.

Ответ 1

Visual С++ может быть много, в том числе:

  • Компилятор Microsoft С++ (cl.exe, link.exe и т.д.)
  • IDE (Visual Studio в режиме С++)
  • Время выполнения C (MSVCRT)
  • Другие библиотеки (не так): MFC, ATL

Как для компиляции старого кода на С++: Visual Studio теперь является довольно совместимым компилятором С++. Это не всегда так, например, с Visual С++ 6 или ранее. Вероятно, ваш код не соответствует стандартам или использует устаревшее поведение, которое просто не работает на более новых компиляторах.

Visual С++, к сожалению, является плохим компилятором C, поскольку он не поддерживает C99 (и никогда не будет), если только функции не перекрываются между С++ и C99. Самой известной проблемой для многих людей является отсутствие stdint.h.

Ответ 2

Visual С++ - это IDE. Он компилирует стандартный код на С++. Однако каждый компилятор С++ по существу создает свою собственную версию С++. Немногие компиляторы полностью совместимы с текущим стандартом, и они могут или не могут добавлять функции из будущего стандарта. Кроме того, они иногда добавляют свои собственные расширения к языку. Таким образом, при компиляции кода на С++ с разными компиляторами всегда существует риск переноса. Тем не менее, последние версии Visual С++ довольно близки к стандартам, совместимым, и большинство вещей, которые скомпилируются с ним, будут скомпилированы с другими популярными компиляторами, такими как gcc/g++ (и наоборот).

Ответ 3

VS2008 включает как стандартные С++, так и Microsoft Managed С++. Стандартный С++ в основном совместим с С++ 03 (по крайней мере, это было целью). Управляемый (то есть нестандартный) С++ предназначен для разработки приложений .NET и не является (и не должен был) соответствовать любому стандарту С++.

Возможно, вы захотите убедиться, что вы случайно не выбрали Managed С++ при портировании вашего приложения.

Ответ 4

Visual С++ - это имя Microsoft IDE и компилятор для языка программирования С++. Обратите внимание, что, как и многие реализации С++, Visual С++ имеет определенные расширения, которые не предоставляются С++, а также некоторые области, где он не полностью соответствует стандарту языка ISO С++.

Ответ 5

VS С++ по существу является определенным типом С++.

Новые версии VS включают в себя более новые функции, как расширения (такие как CLI), а также новые стандарты, такие как С++ 0x (вывод типа и т.д.).

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

Ответ 6

Visual С++ содержит компилятор С++, который является реализацией С++ Language Standard. Visual С++ 6 является несоответствующей реализацией. Visual С++ 2008 намного лучше. Есть некоторые изменения от VС++ 6 до VС++ 2008, почему ваш старый код не удалось скомпилировать. Есть флаги, которые позволяют компилировать код VС++ 6 в VС++ 2008.

Вот хороший вопрос уже о SO, который может быть полезен.

Ответ 7

Я предполагаю, что Visual С++ включает расширения библиотеки Microsoft.