Eti*_*tel 13
C++/CLI和托管C++(或C++的托管扩展)是两回事.托管C++是以前的版本,并且有一些语法差异.它也被弃用,转而使用C++/CLI.
C++/CLI是ISO C++ 的扩展,因此比较没有实际意义.它允许编写将在CLR上运行的代码.因此,是否要使用该扩展取决于您是否需要在C++中编写需要与CIL语言(例如C#)接口的东西.
例如,如果您需要在.NET应用程序中使用用C或C++编写的旧库,则可以为其编写C++/CLI包装器.
jal*_*alf 11
我还没有在答案中提到的一件事(可能是因为它更多的是一个缺点,但它是一个相关的考虑因素)是C++/CLI倾向于获得二等处理.微软过去常常将其推广为C++ 的替代品.他们希望本机开发人员切换到.NET,而这样做的方法是编写C++/CLI而不是C++.
现在,他们已经放弃了这一点,并且C++/CLI被降级为互操作语言.Microsoft建议您在需要混合使用本机C++和.NET代码时使用它,您可以使用C++/CLI作为它们之间的"桥梁",而C++又是一流的语言.
C++/CLI在某些方面也落后了:
因此,如果您想编写.NET代码,请使用"真正的".NET语言,例如C#.如果要编写C++,请使用"真正的"本机C++.如果要混合使用两者,请使用C++/CLI编写互操作代码.