首先,让我阐明一下我所说的“普通”C++是什么意思- 我目前正在阅读Walter Savitch的《C++问题解决》。据我所知,这本书并非专门针对Microsoft或Unix编写的。那么我的问题是,我从这本书中学到的东西(我用它来获取关于C++的普遍知识)与我不断听到的CLI C++有何不同?
CLI C++只是在使用Visual C++时遇到的吗?我完全困惑了。
首先,让我阐明一下我所说的“普通”C++是什么意思- 我目前正在阅读Walter Savitch的《C++问题解决》。据我所知,这本书并非专门针对Microsoft或Unix编写的。那么我的问题是,我从这本书中学到的东西(我用它来获取关于C++的普遍知识)与我不断听到的CLI C++有何不同?
CLI C++只是在使用Visual C++时遇到的吗?我完全困惑了。
C++/CLI(也有时称为 C++ / CLR)是一种介于本机 C++ 和 .NET 框架之间的语言。
它通常用于需要桥接一些本机代码(纯 C++)和托管代码(如 VB、C#、F# 等)的应用程序。
然而,C++/CLI 与普通 C++ 相比是完全不同的东西。当人们说 Visual C++ 时,其含义可能因上下文而异。有时他们指的是启用了公共语言运行时 (CLR) 层的 C++,而有时他们仅指普通的 C++。很遗憾,在这里存在很多不同的术语和错误的用词,但你能做些什么呢?
C++和C++/CLI有很大的区别。C++/CLI是由微软开发的托管.NET版本的C++,旨在将.NET层与本地代码相连接。
c++/cli是微软Visual c++品牌工具的当前版本。(在c++/cli之前有不同的设计)
c++/cli实际上是两个版本的c++。其中一个是高度标准化的c++编译器,另一个是运行在CLI虚拟机上的c++版本。显然,标准c++永远不会在VM上运行,因此决定了这种语言的两种方法。
使用它时,您可以将未管理和托管代码混合在一起。 "未管理"是像标准c++一样编译的代码。 "托管"是编译为CLI (.Net)虚拟机的字节码的代码。微软为托管和未管理的代码都提供了广泛的API。使用该产品,您可以访问两个API。
您可以使用该语言和工具开发标准c++应用程序,只需小心不要使用非标准扩展即可。如果您有疑问,建议偶尔在另一个编译器中进行编译。托管侧完全不符合标准,即使未管理侧也有大量的非标准扩展。
PS我不是专家,但我很好奇,上周读了这个。我认为你的问题值得回答。祝你好运!