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

CLR 对象不支持全局变量,如此所述。

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

于 2012-05-02T01:32:39.927 回答