2012-05-02 27 views
1

你如何讓一個變量處於「公共參考類」的公共/全局範圍?
的Visual C++ [2010]
在我的主要DLL main.h:如何從C++中的「public ref class」製作一個公共變量?

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 ::富」
可以不聲明一個全局或靜態變量,或天然類型的成員引用到gc堆中的對象

回答

1

CLR對象不支持全局變量。選中此項:http://msdn.microsoft.com/en-us/library/by40z94e(v=vs.80).aspx

創建一個全局類並使用static來模擬全局變量或僅在函數範圍內聲明CLR變量。

+0

非常感謝! 即使該鏈接有幫助,我決定將我的CLR/DLL更改爲靜態庫項目以幫助解決我的問題。這不是我真正的代碼,但我給出了一個廣泛的示例來尋求幫助。 – dsrdakota