WIN32APIでコマンドライン引数を取得する
ブログを見ないで公式ドキュメントを読め docs.microsoft.com
- GetCommandLine()
- CommandLineToArgv()
を使ってリストで取得できる(要メモリ解放)
#include <windows.h> #include <stdio.h> #include <shellapi.h> int __cdecl main() { LPWSTR *szArglist; int nArgs; int i; szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs); if( NULL == szArglist ) { wprintf(L"CommandLineToArgvW failed\n"); return 0; } else for( i=0; i<nArgs; i++) printf("%d: %ws\n", i, szArglist[i]); // Free memory allocated for CommandLineToArgvW arguments. LocalFree(szArglist); return(1); }
プログラム中のどこからでも呼べるのが時と場合によって便利