Visual C++にあるMicrosoft独自の拡張機能の一例
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では使えないようなので注意が必要である.

        