【问题标题】:Is there any advantage to using C++/CLI over either standard C++ or C#?与标准 C++ 或 C# 相比,使用 C++/CLI 有什么优势吗?
【发布时间】:2008-11-17 23:19:30
【问题描述】:

我没有看到任何真正的优势,除了您拥有 C++ 语法,以及诸如指针和析构函数之类的东西。

【问题讨论】:

  • 当你说“微软的 C++ 风格”时,你是在谈论 MSVC 的原生 C++ 编译器中的 MS 扩展,还是在谈论 C++/CLI?
  • 我指的是编译到 .NET 运行时的 Visual C++。我认为那是 C++/CLI。

标签: c# .net c++ windows c++-cli


【解决方案1】:

如果您在谈论为什么要使用 C++/CLI 而不是 C#,我认为主要原因是:

  1. 对于 C++ 开发人员来说可能更自然(尽管我认为这可能不是真的)
  2. C++/CLI 具有非常好的功能,可以连接本地环境和托管环境(使用“IJW” - It Just Works - 技术)

我认为 Herb Sutter 可能给出了最好的概述:

A Design Rationale for C++/CLI

如果您想知道为什么要使用原生 C++ 而不是 C#/.NET,这可以归结为为什么需要托管环境(安全、更容易开发)而不是原生代码(绝对控制,可能具有速度优势) .每个都有争论,答案实际上取决于您想要开发什么以及您的市场可能是什么。

【讨论】:

    【解决方案2】:

    我认为您指的是 C++/CLI 并将其与 C# 进行比较。 C++/CLI 不是 C++ 的“风味”。它是一种全新的语言,具有完全不同的标准库和完全不同的约定。

    在工作中,我们发现 C++/CLI 作为 C++ 和 .NET 之间的胶水语言很有价值,但除了接口胶水之外,我们不将其用于任何其他用途 - 在所有其他应用程序中,C# 比 C++ 具有巨大优势。

    如果您指的是像 Adam 所描述的那样的 MS C++ 扩展,那么如果它们使您的工作更轻松,那么没有理由不使用它们。

    【讨论】:

      【解决方案3】:

      使用 C++\CLI 的真正原因是为了将 DotNet 语言与 Native C++ 进行通信,例如许多公司首先将他们的 GUI 迁移到 .Net 并让一些逻辑在 C++ 中,而 C++\CLI 是沟通之间的良好桥梁两个技术,你也可以使用 COM 组件,但由于许多原因,这不是一个好的选择。

      【讨论】:

        【解决方案4】:

        我不认为比较不同风格的 C++ 与比较 C++ 和 C# 是同一个问题。与不同风格的 C++ 之间的差异相比,C# 是一个非常不同的野兽。

        【讨论】:

        • 确实如此。但即便如此,我看不出有理由使用微软的 C++ 而不是 C#。尽管我确实看到了使用标准 C++ 而非 C# 或 C# 而非标准 C++ 的理由。
        • 我看到了公司使用 c++.cli 的原因。他们不必移植太多,仍然可以访问所有 .net。
        • EBGreen,我认为他应该改变他的问题来说明这件事:)
        • @Thomas 如果您看到使用其中一个的原因,那么您已经在寻找一个好的答案的路上了。这真的取决于你打算做什么。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-20
        • 2020-02-26
        • 2018-10-08
        • 2012-12-09
        • 1970-01-01
        • 1970-01-01
        • 2010-09-24
        相关资源
        最近更新 更多