既に Zuishin さんが回答されていますが・・
WinMainとどんな違いがあるのですか?
main()
/ WinMain()
の違いですが、既定の SUBSYSTEM
およびエントリーポイントが下記のように変わります。
メイン関数名 | SUBSYSTEM | エントリーポイント |
---|
main | CONSOLE | mainCRTStartup |
wmain | CONSOLE | wmainCRTStartup |
_tmain | CONSOLE | mainCRTStartup または wmainCRTStartup |
WinMain | WINDOWS | WinMainCRTStartup |
wWinMain | WINDOWS | wWinMainCRTStartup |
_tWinMain | WINDOWS | WinMainCRTStartup または wWinMainCRTStartup |
SUBSYSTEM
はどのような環境向けのアプリケーションを作るか、といった指定になります。
つまるところコンソールアプリなのか GUI アプリなのか、といった違いになります。
個人的な感想ですが、Win32 API の使用例に main()
関数が使われるのは、サンプルコードを短くする為、といった理由ではないかと思います。
<参考>
■ /SUBSYSTEM (サブシステムの指定)
https://docs.microsoft.com/ja-jp/cpp/build/reference/subsystem-specify-subsystem?view=msvc-170
■ /ENTRY (エントリ ポイント シンボル)
https://docs.microsoft.com/ja-jp/cpp/build/reference/entry-entry-point-symbol?view=msvc-170