gpt4 book ai didi

c# - 如何在 Visual C++ 中将托管变量用作全局变量?

转载 作者:行者123 更新时间:2023-11-28 00:28:28 26 4
gpt4 key购买 nike

我正在用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com