我正在用 Visual C++ 编写 MFC 应用程序并使用一个 C# 库。 Dou to I 结合非托管和托管类和变量。我需要一些来自 C# 的托管类在全局范围内放置和读取,以便可以从整个应用程序访问。我试过了(简单的例子):
App.h:
class MyClass1 {
public:
gcroot<Namespace::Something^> var;
};
class MyClass2 {
public:
static gcroot<Namespace::Something^> var;
};
extern MyClass1 *cl1;
App.cpp
MyClass1 *cl1 = new MyClass1();
当我使用“cl1->var”时,我得到 System.NullReferenceException,MyClass2 返回错误
error LNK2020: unresolved token (0A0003BE) "public: static struct gcroot ...
error LNK2001: unresolved external symbol "public: static struct gcroot ...
请帮助我,如何在整个应用程序中使用“Something^ var”?
最佳答案
与任何其他 C++ 静态成员一样,除了声明它之外,您还需要定义它。因此,在命名空间范围内的 App.cpp 中,您需要:
gcroot<Namespace::Something^> MyClass2::var;
关于c# - 如何在 Visual C++ 中将托管变量用作全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23941645/