调试时传递命令行参数(C++)

在 Visual C++ 中,使用命令行参数下拉列表在调试时快速指定或重复使用命令行参数。

先决条件

指定命令行参数

“标准”工具栏中提供了命令行参数下拉列表。 如果标准工具栏不可见,则从 Visual Studio 主菜单中选择“工具>自定义”。 在 “自定义 ”对话框中,选择 “工具栏”。 然后选择“ 标准”。

“自定义”对话框的屏幕截图。

“自定义”对话框中选择了“工具栏”选项卡。 “标准”条目(即标准工具栏)处于选中状态。

命令行参数下拉列表遵循“标准”工具栏上的“解决方案平台”下拉列表。 如果未指定任何参数,则下拉列表为空,工具提示显示“空”。

命令行参数下拉列表的屏幕截图。

命令行 arg 下拉列表显示在“标准”工具栏上的“解决方案平台”下拉列表后面。 下拉列表为空。 工具提示读取“空”。

添加命令行参数时,工具提示会显示所选参数列表,以便查看所有参数。

若要添加命令行参数,请在下拉列表中键入它们,然后按 Enter。 参数将按输入它们的顺序保存,并显示在下拉列表中以供将来使用。 在删除最早的命令行以腾出新命令行之前,可以添加五个命令行。

在此示例中,命令行参数 -arg1 将添加到下拉列表中:

命令行参数下拉列表的屏幕截图。它包含值 -arg1。

添加另一个参数, -arg2结果为:

命令行参数下拉列表的屏幕截图。它包含值 -arg1 -arg2。

可以使用下拉列表来选择以前指定的命令行参数,以传递给要调试的应用。 考虑下列代码:

#include <iostream>

int main(int argc, char* argv[]) 
{
    for (int i = 1; i < argc; ++i) // argv[0] is the path of the running program
    {
        std::cout << "Argument " << i << ": " << argv[i] << std::endl;
    }
    return 0;
}

在此示例中, -arg1 -arg2 参数在命令行参数下拉列表中选择:

命令行参数下拉列表的屏幕截图。已选择“-arg1 -arg2”的条目。

当应用运行时,这会导致此输出:

Argument 1: -arg1
Argument 2: -arg2

命令行参数下拉列表是一种指定和重用命令行参数的便捷方法。 尤其是在需要针对要测试的不同方案在不同参数之间进行快速切换时。

还可以在命令行参数下拉列表中单击,然后按 Ctrl+C 将突出显示的命令行复制到剪贴板。

与项目设置的关系

指定命令行参数的另一种方法是在项目设置中。

如果右键单击解决方案资源管理器中的项目并选择“属性”,则可以在“调试>命令参数”中指定命令行参数。

项目属性页调试选项的屏幕截图。

将显示 Command Arguments 条目,其参数与命令行参数下拉列表相同:-arg1 -arg2。

项目设置中指定的命令行参数将添加到命令行参数下拉列表中。 相反,如果在命令行参数下拉列表中选择参数,它们将替换项目设置中指定的参数。 无论哪种方式指定参数,它们都保持同步。两者都与项目设置一起保存,因此在重新打开项目时可以使用它们。