コマンドライン引数を使ったコンソールアプリを作成する際、変更毎にビルドを行ってからBashなどで打ち込んで実行を行うのは、すこし手間がかかる作業です。
Visual Studio2022では、デバッグ実行時にコマンドライン引数を設定できる機能が備わっているため、開発を少し楽に行うことが出来ます。
本記事を読むことで、Visual Studio 2022 のデバッグ機能を使ってコマンドライン引数を設定し、argcと ``argv{{の挙動を確認できるようになります。
前提知識
-
コマンドライン引数やコンソールアプリのことを知っている -
Visual Studio2022を使用したことがある
上記の記事でコマンドライン引数について触れています。
まだコマンドライン引数について知らない方はこちらの記事に目を通すことを推奨します。
デバッグ実行でのコマンドライン引数の渡し方
本記事では、例として以下のC++コードにコマンドライン引数を渡します。
//---------------------------------------------------------------
//! @file main.cpp
//! @brief コマンドライン引数のサンプルコード
//! @author つきの
//---------------------------------------------------------------
#include <iostream>
//---------------------------------------------------------------
//! @brief エントリポイントの関数
//! @param argc コマンドライン引数の個数
//! @param argv コマンドライン引数の配列
//! @return 0:正常終了 1:異常終了
//---------------------------------------------------------------
int main(int argc, char* argv[]) {
// コマンドライン引数を表示、0番目はアプリケーション名
for (int i = 0; i < argc; i++) {
// 引数を表示
std::cout << "argv[" << i << "] = " << argv[i] << std::endl;
}
// 正常終了
return 0;
}
上部GUIのプロジェクト->プロパティをクリックし、プロパティウィンドウを開いてください。

プロパティウィンドウの左側から、構成プロパティ->デバッグを選択し、ウィンドウ右のコマンド引数に任意のコマンドを入力し、OKをクリックし、プロパティウィンドウの適用をクリックしてください。
コマンド引数の項目にはアプリケーションの名前は含めず、argv[1]に当たる部分から入力してください。
$ CommandLineArgsTest.exe HelloWorld
の場合は、CommandLineArgsTest.exeの部分を省き、HelloWorldのみを入力してください。

上部GUIのローカルWindowsデバッガーをクリックするか、F5キーの押下で、デバッグ実行を行ってください。

実行例
HelloWorld こんにちは世界 BonjourLeMondeの場合
argv[0] = C:\中略\CommandLineArgsTest.exe
argv[1] = HelloWorld
argv[2] = こんにちは世界
argv[3] = BonjourLeMonde
つきのを フォロー してねの場合
argv[0] = C:\中略\CommandLineArgsTest.exe
argv[1] = つきのを
argv[2] = フォロー
argv[3] = してね
総括
-
Visual Studio 2022では、プロジェクトのプロパティ->デバッグ->コマンド引数に値を設定することで、デバッグ実行時にコマンドライン引数を渡せる機能が備わっている -
argv[0]には自動的にアプリケーションの絶対パスが格納され、入力した値はmain(int argc, char* argv[])のargv[1]以降に格納される - 空白区切りで複数の引数を渡すことができ、実際のコマンドライン実行と同じ挙動を再現できる