Symbian目前不能定义全局变量。原因可参考如下文档:
Why doesn't Symbian OS support writeable static data
Does Symbian OS provide support for writeable static data (WSD)?
http://www3.symbian.com/faq.nsf/0/0840F25CBF63333680256FCC0063B5F3?OpenDocument
可以采用如下方法解决:
方法1:把这个变量定义成AppUi类的私有成员,在创建view时将这个变量传引用(或传指针)到view中,这样view就能随时访问它了。
方法2:把这个变量定义成AppUi类的私有成员,并为它写公共的访问函数
// CMyAppUi
public:
// new methods
TInt GetShare(); // return iShare
private:
TInt iShare;
在View里通过下面的方式访问这个变量:
// 如果View继承自CAknView
CMyAppUi* appUi = static_cast<CMyAppUi*>(AppUi());
TInt share = appUi->GetShare();
// 如果View是其它类型
CMyAppUi* appUi = static_cast<CMyAppUi*>(CCoeEnv::Static()->AppUi());
TInt share = appUi->GetShare();
方法3:使用单态类,参考诺基亚论坛上的文档:
Tip Of The Month: How To Implement A Singleton Class In Symbian OS
http://www.forum.nokia.com/html_reader/main/1,,11322,00.html