Main() の引数
Main() 関数:インデックス への移動
C++Builder の起動ルーチンでは、argc、argv、env という 3 つのパラメータ(引数)が main に渡されます。
argcは整数で、mainに渡されたコマンド ライン引数(実行可能ファイル自体の名前も含む)の数を表します。argvは、文字列のポインタの配列(char *[])です。argv[0]は、実行対象プログラムの完全パス名です。argv[1]は、オペレーティング システムのコマンド ラインでプログラム名の後に入力された最初の文字列のポインタです。argv[2]は、プログラム名の後に入力された 2 番目の文字列のポインタです。argv[argc-1]は、mainに渡された最後の引数のポインタです。argv[argc]にはNULLが含まれます。
envも文字列のポインタの配列です。env[]の各要素には、ENVVAR=valueという形式の文字列が格納されています。ENVVARは環境変数の名前です(PATHなど)。valueはENVVARに設定されている値です(PATHの場合はC:\APPS;C:\TOOLS;など)。
これらのパラメータを宣言する場合には、必ず argc、argv、env の順に宣言しなければなりません。 たとえば、以下の例はいずれも有効な main の引数宣言です。
int main() int main(int argc) /* legal but very unlikely */ int main(int argc, char *argv[]) int main(int argc, char *argv[], char *env[])]
int main(int argc) という宣言は間違ってはいませんが、プログラム内で argv の要素を使わずに argc だけを使うことはほとんどありません。
引数 env には、グローバル変数 _environ 経由でアクセスすることもできます。
argc および argv も、すべてのプラットフォームで、グローバル変数 _argc および _argv 経由でアクセスすることができます。
Unicode アプリケーションでの main() の使用
Unicode 用の main 関数は次のように宣言されています。
int wmain (int argc, wchar_t *argv[], wchar_t *env[])
argv(およびオプションの envp)パラメータではワイド文字をサポートしています。
次の _tmain 関数はマクロであり、アプリケーションの種類に応じて適切な main 関数に展開されます。
int _tmain (int argc, _TCHAR *argv[], _TCHAR *env[])