コマンドラインの取得

  • デル株式会社
  • 普通に ::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)

    不具合あっても責任は取りません。
    自己責任でお願いしますね。

    関連記事

    ページ上部へ戻る