В чем разница между Visual C ++ и C ++? - PullRequest
11 голосов
/ 18 мая 2010

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

Ответы [ 7 ]

14 голосов
/ 18 мая 2010

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

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

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

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

3 голосов
/ 18 мая 2010

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

2 голосов
/ 19 мая 2010

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

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

1 голос
/ 19 мая 2010

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

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

1 голос
/ 18 мая 2010

VS C ++ - это, по сути, особый тип C ++.

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

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

1 голос
/ 18 мая 2010

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

0 голосов
/ 18 мая 2010

Полагаю, Visual C ++ содержит расширения библиотеки Microsoft.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...