0

Visual C++ で MFC アプリケーションを作成し、1 つの C# ライブラリを使用しています。アンマネージ クラスとマネージ クラスおよび変数を結合します。アプリ全体からアクセスできるようにするには、グローバル スコープとの間で書き込みおよび読み取りを行う 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 return エラーが発生します

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 に答える