什么是CLI / C ++?它与'普通'c ++有何不同?

时间:2011-06-18 23:18:15

标签: c++ visual-c++ c++-cli

首先让我澄清“正常”C ++的含义 - 我现在正在阅读Walter Savitch的“用C ++解决问题”。据我所知,这不是专门为微软或Unix编写的。所以我的问题是,我在本书中学到的东西(我用于获取c ++的普遍知识)与我一直在阅读的有关CLI C ++的内容有何不同?

如果我使用Visual C ++,CLI C ++就是我会遇到的吗?我完全糊涂了。

3 个答案:

答案 0 :(得分:13)

C ++ / CLI(有时也称为C ++ / CLR)是指位于本机C ++和.NET框架之间的某种语言。

它通常用于需要桥接一些本机代码(纯C ++)和托管代码(如VB,C#,F#等)的应用程序。

C ++ / CLI是一种与常规C ++截然不同的野兽。当人们说Visual C ++时,其含义可能因环境而异。有时它们意味着启用了公共语言运行时(CLR)层的C ++,有时它们只是简单的C ++。不幸的是,那里有很多不同的术语,还有很多用词不当,但你能做些什么呢?

答案 1 :(得分:7)

C ++和C ++ / CLI差别很大。 C ++ / CLI是C ++的托管.NET版本,由Microsoft制作,支持从.NET到本机代码的层。

答案 2 :(得分:1)

c ++ / cli是Microsoft Visual C ++品牌工具的当前版本。 (在c ++ / cli之前有一个不同的设计)

c ++ / cli实际上是两个版本的c ++。有一个高度标准化的c ++编译器以及在CLI虚拟机上运行的c ++版本。显然,标准c ++永远不会在VM上运行,因此确定了该语言的二合一方法。

使用它时,您可以将unman age和托管代码混合在一起。 “Unmanaged”是像标准c ++一样编译的代码。 “Managed”是CLI(.Net)虚拟机器字节码的代码编译器。 Microsoft为托管代码和非托管代码提供了广泛的API。使用该产品,您可以访问这两个API。

您可以使用语言和工具开发标准c ++应用程序,只需注意不要使用非标准扩展。如果你有疑问,我建议偶尔在另一个编译器中编译。管理方完全不标准,即使是非管理方也有大量非标准扩展。

PS我不是专家,但我很好奇并且在上周阅读了这篇文章。我认为你的问题值得回答。祝你好运!