C/C++では,コマンドライン引数が欲しい時,main関数の引数にint argc, char **argvなどを指定して使うことが多いが,実はMicrosoft独自の拡張機能が想定できる場合にはグローバル変数にもある.
Microsoftのコンパイラなら,グローバル変数として__argc, __argvが存在することが期待できる.
グローバル変数なのでスタートの関数がWinMainなどであっても同様に使用することができる.
このことは初めて知った.(忘れていただけかもしれないが...)
例えば次のようなコードで使用できる.
#include <iostream> int main() { for (int i = 0; i < __argc; i++) { std::wcout << __argv[i] << std::endl; } return 0; }
MinGWでは使えないようなので注意が必要である.