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



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

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

常规的、普通的、基于 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 之间区别的更多信息,请参阅我的回答。

c++/cli 是一种基于 dotNET 的语言,具体取决于 CLR。

C++由ISO标准定义,不应与微软的C ++/CLI混淆

如果您希望使用基于 dotNET 的语言,请学习 C# 而不是 C++/CLI。您的教程很可能适用于常规C++ - 这比 C++/CLI 更常见。Visual Studio可以很好地与标准C++或C++/CLI配合使用,您可以在创建项目时选择要使用的内容。

最新更新