дабы далеко не ходить. приведу выдержу из книги Джеффри Рихрера "Создание эффективных WIN-32 приложений с учетом специфики 64 разрядной версии Windows" (да простят меня линуксоиды )
*************
Во всех Windows-приложениях должна быть входная функция за реализацию которой отвечаете Вы Существует четыре такие функции:
int WINAPI WinMain( HINSTANCE hinstExe, HINSTANCE, PSTR pszCmdLine, int nCmdShow);
int WINAPT wWinMain( HINSTANCE hinstExe, HINSTANCE, PWSTR pszCmdLine, int nCmdShow);
int __cdecl main( int argc, char *argv[], char *envp[]);
int _cdecl wmain( int argc, wchar_t *argv[], wchar_t *envp[]);
На самом делс входная функция операционной системой не вызывается Вместо этого происходит обращение к старювой функции из библиотеки С/С++ Она ини циализирует библиотеку С/С++, чтобы можно было вызывать такие функции, как malloc и free, а также обеспечивает корректное создание любых объявленных Вами глобальных и статических С++-объектов до того, как начнется выполнение Вашего кода
**************