我正在Visual Studio中开发一个c++命令行应用程序,需要用命令行参数调试它。目前,我只是运行生成的EXE文件与我需要的参数(像这个program.exe -file.txt),但这样我不能调试。我是否可以在某个地方指定调试参数?


当前回答

在VS 2015及以上版本中,使用智能命令行参数扩展。这个插件添加了一个窗口,允许你打开和关闭参数:

扩展还将参数存储在JSON文件中,允许您将它们提交给源代码控制。除了确保您不必每次都输入所有参数外,这还可以作为文档的有用补充,供其他开发人员发现可用选项。

其他回答

Mozilla.org关于在Windows上调试Mozilla的常见问题解答在这里很有趣。

简而言之,Visual Studio调试器可以从命令行在程序上调用,允许在调用命令行程序时直接在命令行上指定命令行参数。

对于Visual Studio 8或Visual Studio 9(分别是Visual Studio 2005或Visual Studio 2008),这看起来如下所示

  devenv /debugexe 'program name' 'program arguments'

也可以在Visual Studio调试器中使用资源管理器操作来启动程序。

在Visual Studio的解决方案窗口中右键单击项目,选择“调试”(在左侧),在“命令参数”字段中输入参数:

在Visual Studio 2022中,指定“命令行参数”的选项已移动到“启动配置文件UI”(截图如下)。

您可以从右键单击项目>属性>调试>“打开调试启动配置文件UI”>命令行参数


请注意,该功能目前正在收到来自用户的负面反馈。参考下图:

调试启动配置文件UI需要太多的点击才能到达 启动配置文件UI设置环境变量不可用

这可能会帮助一些仍然有问题的人。 我使用Visual Studio 2015,当我改变argv的定义时,我只能传递参数。

而不是

int main(int argc, char **argv){
}

我必须使用

int main(int argc, char *argv[]){
}

我不知道为什么这是必要的,但它确实有效。

在VS 2015及以上版本中,使用智能命令行参数扩展。这个插件添加了一个窗口,允许你打开和关闭参数:

扩展还将参数存储在JSON文件中,允许您将它们提交给源代码控制。除了确保您不必每次都输入所有参数外,这还可以作为文档的有用补充,供其他开发人员发现可用选项。