0

我正在用 Visual C++ 编写 MFC 应用程序并使用一个 C# 库。Dou to I 结合了非托管和托管的类和变量。我需要一些来自 C# 的托管类 put 和 read to/from global scope 以便可以从整个应用程序访问。我试过(简单的例子):

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”?

4

1 回答 1

4

与任何其他 c++ 静态成员一样,除了声明它之外,您还需要定义它。因此,在命名空间范围内的 App.cpp 中,您需要:

gcroot<Namespace::Something^> MyClass2::var;
于 2014-05-29T19:46:08.910 回答