c++ - C++ 和 C++ CLI 有什么区别

标签 c++ c++-cli

<分区>

我正在学习 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++ 中编程......它们非常不同,你不能混合使用它们。

关于c++ - C++ 和 C++ CLI 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2157337/

相关文章:

c++ - TerminateThread 后清理?

c++ - 如何从代码块中的 .cpp 文件创建 .exe?

c# - 委托(delegate)和事件之间的关系是什么?

c++ - "Unresolved Typeref-Token"与 SDL_net 和 .NET

c# - 传递结构似乎会损坏数据

c++ - std::list static_cast 派生迭代器

c++ - 如何对作为二维矩阵元素的 vector<int> 进行排序?

.net - 为什么在以下有关对象类的代码中,在 Point 后面使用 ^ 运算符

visual-c++ - 在 C++/CLI 中,帽子字符 ^ 有何作用?

c++ - LinkedList实现C++错误指针间接