我正在学习 C++(显然是 CLI),每次我发布一个问题说我正在使用 C++ 时,都会有人跳到我的喉咙里说我不是在使用 C++,而是在使用 C++/CLI。我不太确定有什么区别,因为我对此非常陌生,但这似乎让每个人都不高兴。谁能阐明其中的差异?
作为第二个说明,我问这个的原因是因为有人建议我使用 CLI 能够 make a method accessible to my C# project .通过我的构造函数,我的 C++ 项目中的一切都运行良好,但现在我希望能够从我的 C# 项目中调用这些相同的方法。
C++ CLI 在“通用语言接口(interface)”上运行。这基本上意味着当它被编译时,编译后的代码最终将像通过 C# 生成的字节代码一样被分配。
C++ CLI 添加了大量扩展,例如 C++ 中不存在的垃圾收集。 C++ CLI 还允许“安全”C++ 代码。在这种模式下,您不允许使用指针。 C++ 中没有“安全”代码之类的东西,它们都是“不安全”的。 C++ CLI 可以很好地连接 .NET 代码和 C++ 库,但除此之外,我还没有找到它的用途。
维基百科页面有一个很好的概述:http://en.wikipedia.org/wiki/C%2B%2B/CLI
是的,他们指责你是正确的,因为能够在 C++ CLI 中编程将不允许你在 C++ 中编程......它们非常不同,你不能混合使用它们。