如何在c ++中从“公共引用类”创建一个公共变量?

时间:2012-05-02 01:16:27

标签: c++ class visual-c++ public ref

如何允许变量处于“公共引用类”的公共/全局范围?
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堆中对象的本机类型的成员

1 个答案:

答案 0 :(得分:1)

CLR对象不支持全局变量。检查一下:http://msdn.microsoft.com/en-us/library/by40z94e(v=vs.80).aspx

创建一个全局类并使用static来模拟全局变量或仅在函数范围内声明CLR变量。