|
コマンドライン引数の取得・解析を行います
|
| ソース |
CommandLineInfo.hpp
CommandLineInfo.cpp
|
| 1 |
WcCommandLineInfo派生クラス
WcDerivedCommandLineInfoを宣言します。
WcDerivedCommandLineInfo : public WcCommandLineInfo
{
public:
WcDerivedCommandLineInfo();
virtual ~WcDerivedCommandLineInfo();
protected:
static LPCTSTR m_aFlag[];
};
|
| 2 |
WcDerivedCommandLineInfo::m_aFlagを初期化します。
値としてコマンドラインオプション文字列を設定します。
LPCTSTR WcDerivedCommandLineInfo::m_aFlag[] = {
"foo" ,
"bar" ,
"help" ,
};
|
| 3 |
コンストラクタを実装します。
派生元クラスにはフラグの配列と要素数を与えます。
WcDerivedCommandLineInfo::WcDerivedCommandLineInfo()
: WcCommandLineInfo( m_aFlag , sizeof(m_aFlag) / sizeof(*m_aFlag) )
{
}
|
| 実装例 |
WaveRepairCLI.hpp
WaveRepairCLI.cpp
|
| 4 |
CWinApp派生クラスWcDerivedWinAppに
WcDerivedCommandLineInfo型変数m_cliを宣言します。
class WcDerivedWinApp : public CWinApp
{
...
private:
WcDerivedCommandLineInfo m_cli;
public:
const WcDerivedCommandLineInfo & GetCLI() const { return m_cli; }
...
};
|
| 5 |
WcDerivedWinApp::InitInstanceでコマンドラインを解析します。
BOOL WcDerivedWinApp::InitInstance()
{
...
ParseCommandLine( m_cli ); // コマンドライン解析
...
}
|
| 6 |
これ以降は、
任意のタイミングでオプションの有無、パラメタの値を調べることが可能です。
// helpオプションが設定されていればそのパラメタを表示します
if( m_cli.GetCommandLineParam( 2 ).m_Found ) {
::AfxMessageBox( m_cli.GetCommandLineParam( 2 ).m_pParam );
}
|