视觉 究竟什么是 CLI/C++?它与"普通"c++有何不同?

visual What is CLI/C++ exactly? How does it differ from 'normal' c++?

本文关键字:它与 普通 c++ 何不同 C++ 什么 究竟 CLI 视觉      更新时间:2023-10-16

让我先澄清一下我所说的"正常"C++是什么意思——我目前正在阅读Walter Savitch的《C++中的问题解决》。据我所知,这并不是专门为微软或Unix编写的。因此,我的问题是,我在这本书中学习的内容(我正在用它来获得c++的通用知识)与我一直在读的关于CLI c++的内容有何不同?

如果我使用Visual C++,CLI 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是Microsoft Visual c++品牌工具的当前版本。(在c++/cli之前有一个不同的设计)

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

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

你可以使用该语言和工具开发标准的c++应用程序,你只需要小心不要使用非标准的扩展。如果您有疑问,我建议您偶尔使用另一个编译器进行编译。托管端完全是非标准的,甚至非托管端也有大量的非标准扩展。

附言:我不是专家,但我很好奇,上周读到了这篇文章。我认为你的问题值得回答。祝你好运