- 2012-2-15
- Visual C++
普通に ::GetCommandLine() を使うと、アプリケーション名も拾ってしまって邪魔になる事が多い。
ここで紹介するのはアプリケーション名はいらねって人用。
LPTSTR strCmd = AfxGetApp()->m_lpCmdLine;
でっ、上記を使用して、コマンドラインの解析してみる。
int iPos = 0; // パラメータの取得 CString strParmTmp; // TEMP // コマンドライン引数の取得 CString strParam( AfxGetApp()->m_lpCmdLine ); // 取り敢えず空白の削除 strParam.Trim(); // パラメータ解析 while( TRUE ) { // トークンを検索し次のトークンまでの文字列を返す。 strParmTmp = strParam.Tokenize( _T("/"), iPos ); // 空白の削除 strParmTmp.Trim(); if( strParmTmp == "" ) { // ループから抜ける break; } else { // パラメータの表示 AfxMessageBox( strParmTmp ); } }
トークンの取り扱いはについては、
MSDNのここ参照。(CStringT::Tokenize)
不具合あっても責任は取りません。
自己責任でお願いしますね。