- 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)
不具合あっても責任は取りません。
自己責任でお願いしますね。








