Basically, because the MFC designers decided to provide the entry point of the application ( WinMain () , not main()) in the library itself, so users would not have to write one.
InitInstance() ExitInstance() CWinApp - . WinMain(), ( Run() ) (, nCmdShow, ).
CWinApp -derived - WinMain().
, MFC.