什么是托管C++和C++/CLI之间的区别?

32

“旧版”Managed C++和“新版”C++/CLI之间的确切区别是什么?

3个回答

36

托管C++是VS2002和VS2003中的版本。它存在竞态条件和其他严重的错误,而且很令人困惑。现在不再得到支持。

在VS2005中,Microsoft推出了C++/CLI,并被接受为ISO标准。它也受到VS2008和即将推出的VS2010的支持。

它们都有相同的目标,就是使用C++语言创建.NET程序集。语法不同(C++/CLI托管代码一眼看去很容易与标准C++区分开来),并且C++/CLI还具有.NET 2.0功能(如泛型)的语法。


5
为了完整起见,我们应该说旧语言的正式名称为“扩展型C++管理”。 - Kerrek SB

14

3

Managed C++(扩展的托管C++)是一组微软特定关键字,与标准C++语法一起使用,以允许编译托管代码。它的设计使程序员能够尽快开始使用.NET,并使本机代码移植到.NET平台非常容易。它采用了“它只是工作”原则(IJW),这使得将编程移植到.NET更加容易,但也存在许多缺陷。

C++/CLI是一种新语言。它解决了Managed C++的许多问题,使.NET编程更加强大,并被接受为标准,但也引入了新的语法、新的关键字,并且与旧版Managed C++相比,更加不同于非托管C++。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接