将类实例从c ++ cli导出到c#

时间:2016-08-27 13:44:27

标签: c++-cli

使用C ++ / CLI将C ++代码导出到C#时,我想在C ++ / CLI中创建特定类的实例,以便从各种C#类中使用它

例如 在C ++ / CLI中

namespace Example
{
    public ref class Foo
    {
        Foo(int i) {...}
    };
}

在C#中我想使用Foo的实例,如Example.Foo1(如Foo1 = Foo(1))

我试过

namespace Example
{
    public ref class Foo
    {
        Foo(int i) {...}
    };
    gcroot<Foo^> Foo1 = gcnew Foo(1);
}

但它不起作用。有人可以提出解决方案吗?

1 个答案:

答案 0 :(得分:1)

C#不支持全局变量。 (实际上,C ++ / CLI也没有:它将它们变成幕后隐藏类的静态变量。)

C#不支持gcroot。

只需在类上声明一个静态变量并填充它。

namespace Example
{
    public ref class Foo
    {
    public:
        Foo(int i) {...}

        static Foo^ Foo1 = gcnew Foo(1);
    };
}