我在SO中找到的最接近的问题是
this one,但答案实际上是指C/C++LI优于C#的优势.
我需要了解C/C++LI优于标准C的优势.
解决方法
我还没有看到答案中提到的一件事(可能是因为它更多的是一个缺点,但它是一个相关的考虑因素)是C/C++LI倾向于获得二等治疗.微软曾经把它推到了C的替代品上.他们希望本机开发人员切换到.NET,这样做的方法是编写C/C++LI而不是C语言.
现在,他们已经放弃了这一点,C/C++LI被降级为互操作语言. Microsoft建议您在需要混合本机C和.NET代码时使用它,您可以使用C/C++LI作为它们之间的“桥梁”,而C又是一流的语言.
C/C++LI在某些方面也落后了:
>在Visual Studio 2010中,Intellisense不再适用于C/C++LI.它会在某个时候重新启用,但就目前来说,它已经消失了.
> VS2010增加了对C 0x部分的支持,而据我所知,并非所有这些都适用于C/C++LI.同样,假设Microsoft保持两种语言同步,但在C语言中提供新功能之前,可能会有延迟,因为它们在C/C++LI中可用.
因此,如果您想编写.NET代码,请使用“真正的”.NET语言,例如C#.如果要编写C,请使用“真实”本机C.如果要混合使用两者,请使用C/C++LI编写互操作代码.