在MFC中,可以通過以下兩種方法定義全局變量:
CWinApp
派生類中定義:可以在CWinApp
派生類的頭文件中聲明全局變量,并在源文件中進行定義和初始化。例如:// MyApp.h
class CMyApp : public CWinApp
{
public:
CMyApp();
// 聲明全局變量
CString m_globalString;
};
// MyApp.cpp
CMyApp::CMyApp()
{
// 初始化全局變量
m_globalString = "Hello World";
}
然后,在其他任何地方通過以下方式訪問全局變量:
CString str = ((CMyApp*)AfxGetApp())->m_globalString;
// SomeClass.h
class CSomeClass
{
public:
static CString m_globalString;
};
// SomeClass.cpp
CString CSomeClass::m_globalString = "Hello World";
然后,在其他任何地方通過以下方式訪問全局變量:
CString str = CSomeClass::m_globalString;
需要注意的是,使用全局變量可能會導致代碼的可維護性和可測試性降低,因此在設計MFC應用程序時應盡量避免過多地使用全局變量。