

Программирование на языке MFC
Мой второй блог в серии программирования
Функция AfxGetApp
Фактически внутри этой функции и производятся все действия, необходимые для того, чтобы программа пользователя смогла нормально отработать. Из того, что может нас в настоящий момент заинтересовать, заинтересовать, здесь присутствует только одна деталь. Для нас важно, что в процессе при помощи функции AfxGetApp() выбирается указатель на объект класса CWinApp, после чего вызывается функция, производящая инициализацию AFX (application frameworks), – AfxWinlnit().
Ее исходный код находится в файле appinit.cpp:
BOOL AFXAPI AfxWinlnit(HINSTANCE hlnstance,
HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
ASSERT(hPrevInstance == NULL);
// handle critical errors and avoid Windows message boxes SetErrorMode(SetErrorMode(0) |
SEM_FAILCRITICALERRORS|SEM_NOOPENFILEERRORBOX);
// set resource handles
AFX_MODULE_STATE* pModuleState = AfxGetModuleState(); pModuleState->m_hCurrentInstanceHandle = hlnstance; pModuleState->m_hCurrentResourceHandle = hlnstance;
// fill in the initial state for the application CWinApp* pApp = AfxGetAppO; if (pApp != NULL) {
// Windows specific initialization (not done if no CWinApp) pApp->m_hInstance = hlnstance; pApp->m_hPrevInstance = hPrevInstance; pApp->m_lpCmdLine = lpCmdLine; pApp->m_nCmdShow = nCmdShow;
pApp->SetCurrentHandles();
}
// initialize thread specific data (for main thread) if (!afxContextlsDLL) AfxInitThread()/
return TRUE;
}
Похожие статьи: CWinApp
