Main() 関数について
Main() 関数:インデックス への移動
すべての C プログラムと C++ プログラムには、次のようなプログラム起動関数が必要です。
- コンソールベースのプログラムでは、起動時に
main
関数(Unicode プログラムの場合はwmain
関数)を呼び出します。 - Windows GUI プログラムでは、起動時に
WinMain
関数(Unicode プログラムの場合はwWinMain
関数)を呼び出します。
起動関数をどこに記述するかは好みの問題です。 ファイルの冒頭に main
を記述するプログラマもいれば、末尾に記述するプログラマもいます。 場所にかかわらず、main
については次の事項が常に当てはまります。
- _TCHAR のマッピング(UnicodeString、_tMain、_tWinMain の場合)
- main() の引数
- ワイルドカード引数
- -p の利用(Pascal の呼び出しの慣例)
- main() が返す値
当社の Clang 拡張 C++ コンパイラ(BCC64、BCCIOSARM、BCCAARM)では、宣言に C++ の型が必要になりました。そのため、たとえば、次のように、WinMain に戻り値の型がない場合はエラーが発生します。
WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
...
}
上記の場合は次のようなエラーが発生します。
- C++ ではあらゆる宣言に型指定子が必要です
このエラーを修正するには、コードを次のように更新します。
int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
...
}