CWinApp::ParseCommandLine

CWinApp::ParseCommandLineで、コマンドライン引数をパースしている。

CWinApp クラス | Microsoft Learn

プロジェクトのプロパティで、

コマンド引数をこのように設定
コマンド引数をこのように設定

コマンド引数をこのように設定。

ここで止めてステップイン
ここで止めてステップイン

ここで止めてステップイン。

ここに入ってくる
ここに入ってくる

ここに入ってくる。

引数は4個だが、0番目は実行ファイル名なので、引数は4個だが、0番目は実行ファイル名なので、パラメータは1から3。1から3。
引数は4個だが、0番目は実行ファイル名なので、パラメータは1から3。

引数は4個だが、0番目は実行ファイル名なので、パラメータは1から3。

まずは"/aaa"
まずは"/aaa"

まずは"/aaa"。

ラストではない
ラストではない

ラストではない。

'-'または'/'が先頭ならbFlagをTRUE。
'-'または'/'が先頭ならbFlagをTRUE。

'-'または'/'が先頭ならbFlagをTRUE。

'-'または'/'を取り除いたものがパラメータ本体
'-'または'/'を取り除いたものがパラメータ本体

'-'または'/'を取り除いたものがパラメータ本体。

bFlagは1
bFlagは1

bFlagは1。

ラストではない
ラストではない

ラストではない。

"bbb"は'/'じゃなくて'-'だが、
"bbb"は'/'じゃなくて'-'だが、

"bbb"は'/'じゃなくて'-'だが、

bFlagは1
bFlagは1

bFlagは1。

これもラストではない
これもラストではない

これもラストではない。

"/ccc"の'/'を取り除いて、"ccc"。
"/ccc"の'/'を取り除いて、"ccc"。

"/ccc"の'/'を取り除いて、"ccc"。

また'/'なのでbFlagは1
また'/'なのでbFlagは1

また'/'なのでbFlagは1。

これがラストなのでbLastは1
これがラストなのでbLastは1

これがラストなのでbLastは1。

終わった後のrCmdInfoに変化はなさそう
終わった後のrCmdInfoに変化はなさそう

終わった後のrCmdInfoに変化はなさそう。

ちなみに'/'も'-'も付いてない"ddd"を追加
ちなみに'/'も'-'も付いてない"ddd"を追加

ちなみに'/'も'-'も付いてない"ddd"を追加。

付いていないからそのまま
付いていないからそのまま

付いていないからそのまま。

付いていないからbFlagは0
付いていないからbFlagは0

付いていないからbFlagは0。

ラストではあるのでbLastは1
ラストではあるのでbLastは1

ラストではあるのでbLastは1。

実行すると、こんなのが出る。
実行すると、こんなのが出る。

実行すると、こんなのが出る。
ファイル名として認識されるからかな。

Sample/mfc/CWinApp/ParseCommandLine/src/CWinApp_ at master · bg1bgst333/Sample · GitHub