使用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);
}
但它不起作用。有人可以提出解决方案吗?
答案 0 :(得分:1)
C#不支持全局变量。 (实际上,C ++ / CLI也没有:它将它们变成幕后隐藏类的静态变量。)
C#不支持gcroot。
只需在类上声明一个静态变量并填充它。
namespace Example
{
public ref class Foo
{
public:
Foo(int i) {...}
static Foo^ Foo1 = gcnew Foo(1);
};
}