1

変数が「パブリック参照クラス」のパブリック/グローバルスコープにあることをどのように許可しますか?
Visual C++ [2010]
メイン DLL の main.h:

namespace fdll {

 public ref class foo
 {
   public:
     int bar(int num);
  };

}

私のDLLのmain.cppでは:

#include "main.h"
int fdll::foo::bar(int num)
{
  return num;
}


別のプロジェクトでは:

#using <main.dll>
#include "main.h"
fdll::foo f; <--- error wtf
int main()
{
  Console::WriteLine(fdll.bar(2));
  return 0;
}


与えられたエラー:
エラー C3145: 'f' : グローバル変数または静的変数にマネージド型がない可能性があります 'fdll::foo'
は、グローバル変数または静的変数、または gc ヒープ内のオブジェクトを参照するネイティブ型のメンバーを宣言できません

4

1 に答える 1

1

hereで説明されているように、グローバル変数は CLR オブジェクトではサポートされていません。

グローバル クラスを作成し、 static を使用してグローバル変数を模倣するか、関数スコープで CLR 変数のみを宣言します。

于 2012-05-02T01:32:39.927 に答える