Класс CWinApp - это не что иное, как управляемый класс, который вызывается в функции main / tmain, которая будет отправной точкой при запуске процесса. Поскольку MFC - это просто библиотека, ее можно использовать и в общем консольном приложении в соответствии с флагами, указанными в свойствах проекта.
Экземпляр cwinapp создается из функции AfxWinMain в appmodul.cpp
/////////////////////////////////////////////////////////////////////////////
// export WinMain to force linkage to this module
extern int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
_In_ LPTSTR lpCmdLine, int nCmdShow);
extern "C" int WINAPI
_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
_In_ LPTSTR lpCmdLine, int nCmdShow)
#pragma warning(suppress: 4985)
{
// call shared/exported WinMain
return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
}
Так что создание так называемой непосредственно в основной функции также работает.