我正在Visual Studio中开发一个c++命令行应用程序,需要用命令行参数调试它。目前,我只是运行生成的EXE文件与我需要的参数(像这个program.exe -file.txt),但这样我不能调试。我是否可以在某个地方指定调试参数?
当前回答
我发现一些旧的命令行参数存储在我的启动项目的源文件夹下的mystartupproject . csproject .user文件中。删除这个文件没有工作,Visual Studio为我带回了它。我必须编辑文件中的参数。
文件中的值在VS、项目属性、调试中没有显示。在那里输入值将它们附加到神秘的mystartupproject . csprojj .user文件中的值。
其他回答
是的,它在项目属性页的调试部分。
在2008年以来的Visual Studio中:右键单击项目,选择属性,进入调试部分——有一个“命令参数”框。(提示:不是解决方案,而是项目)。
在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调试器中使用资源管理器操作来启动程序。
我发现一些旧的命令行参数存储在我的启动项目的源文件夹下的mystartupproject . csproject .user文件中。删除这个文件没有工作,Visual Studio为我带回了它。我必须编辑文件中的参数。
文件中的值在VS、项目属性、调试中没有显示。在那里输入值将它们附加到神秘的mystartupproject . csprojj .user文件中的值。
这可能会帮助一些仍然有问题的人。 我使用Visual Studio 2015,当我改变argv的定义时,我只能传递参数。
而不是
int main(int argc, char **argv){
}
我必须使用
int main(int argc, char *argv[]){
}
我不知道为什么这是必要的,但它确实有效。
推荐文章
- 使用不同的Web。在开发和生产环境中进行配置
- 为什么我们需要require require ?
- 是否有一种方法可以在Visual Studio中删除一行而不剪切它?
- 解析c++中的命令行参数?
- 我如何在c++中创建一个随机的字母数字字符串?
- c++中的atan和atan2有什么区别?
- Microsoft Visual Studio的推荐插件
- 现代c++能让你免费获得性能吗?
- Maven命令行如何指向特定的settings.xml为单个命令?
- 一门语言是如何自我扩展的?
- 如何使用cmake创建共享库?
- c++11返回值优化或移动?
- Windows和Linux上的c++编译:ifdef开关
- Eclipse调试器总是阻塞在ThreadPoolExecutor上,没有任何明显的异常,为什么?
- Visual Studio: ContextSwitchDeadlock