Итак, задача объявить объект так, чтобы к нему был доступ из любого места в программе. Давайте сделаем это на основе объекта порожденного от класса CWinApp. Создавайте приложение на базе MFC App Wizard, как SDI например. Имя можно дать TestGlobal.
Для начала объявим ссылку на этот объект. Рядом с его определением. Вот так.
////////////////////////////////////////////// // The one and only CTestGlobalApp object CTestGlobalApp theApp; CTestGlobalApp* NEAR m_gpMyApp = &theApp;.
Теперь нам надо перейти в SDIAFX.H и дописать сслыку на этот объект как внешнюю.
//{{AFX_INSERT_LOCATION}} #include "TestGlobal.h" extern CTestGlobalApp* NEAR gpMyApp; // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_STDAFX_H__E2879A47_6C78_11D4_9411_CEDF8A8E405C__INCLUDED_)
С этого момента в любом месте вы сможете иметь доступ через указатель к функциям класса. Давайте посмотрим. Сможем ли мы вызвать методы объекта из вида не вызывая функцию AfxGetApp().