6

我看到使用 C++ 而不是 C# 的主要优势是编译为本机代码,因此我们可以获得更好的性能。C# 更简单,但可以编译为托管代码。

为什么有人会使用托管 C++?它给我们带来了什么好处?

4

3 回答 3

7

托管 C++ 和 C++/CLI 允许您轻松编写与本机 C++ 交互的托管代码。

这在将现有系统迁移到 .Net 以及在科学环境中使用必须在 C++ 中运行的计算时特别有用。

于 2010-01-28T02:01:19.073 回答
2

托管 c++ 允许更轻松地在本机代码和托管代码之间进行互操作。例如,如果您有一个 c++ 库(.cpp 文件和 .h 文件),您可以将它们链接到您的项目中,并创建适当的 CLR 对象,然后简单地从您的 CLR 对象中调用本机代码:

#include "yourcoollibrary.h"

namespace DotNetLibraryNamespace
{
    public ref class DotNetClass
    {
    public:
        DotNetClass()
        {
        }

        property System::String ^Foo
        {
            System::String ^get()
            {
                return gcnew System::String(c.data.c_str());
            }
            void set(System::String ^str)
            {
                marshal_context ctx;
                c.data = ctx.marshal_as<const char *>(str);
            }
        }

    private:
        NativeClassInMyCoolLibrary c;
    };
}
于 2010-01-28T02:01:52.490 回答
0

(c++/cli 是新名称)您可以包装本机代码以完美地与垃圾控制的 c# 一起工作,甚至还可以处理回调。相反,您可以创建托管类型并从 c++ 与它们交互。

如前所述,允许开发人员轻松迁移到 c# 以试验快速构建时间等,例如 xna,链接到本机库!

于 2010-01-28T02:18:31.487 回答