为什么Visual Studio生成的C++"Hello World"项目看起来有点奇怪?

use*_*233 3 c++ c++-cli visual-studio-2010 visual-studio visual-c++

我是C++编程的新手(尽管我有Java,C#和Visual Basic方面的经验).我已经使用Visual Studio 2010创建了一个默认的"Hello World"示例项目,但是当我研究它生成的示例代码时,它看起来与我在查看C++教程时看到的代码略有不同.

在我的调查中,我了解到有两种版本的C++,或者至少有两种不同的标准.我认为它们被称为CLR和CLI.我必须学习什么标准或版本才能进一步编程?

Cod*_*ray 10

有一些常规的,简单的,基于ISO标准的C++,可能就是你在教程中看到的那种.如果您想用常规C++编写Windows应用程序,您可能会定位Win32 API(或使用一组包含Win32 API基本功能的类,如MFC).

然后是C++/CLI,它几乎可以被认为是一种全新的语言(尽管是C++的超集),其中包括Microsoft的扩展以支持.NET Framework.它被标准化为ECMA-372..NET Framework在CLR之上运行,因此与CLR兼容的C++版本称为"C++/CLI".

您可能希望完全忽略该语言的C++/CLI变体.它实际上只适用于.NET代码的互操作性场景.既然你似乎想要学习C++,那么额外的CLI内容就会让人​​感到困惑.您想学习真正的 C++,而不是在C++之上移植的.NET Framework.如果您想学习.NET,请先使用C#或VB.NET.

有关C++和C++/CLI之间区别的更多信息,请参阅我的答案.