VS2010 - 使用cmd.exe调试win32控制台应用程序

时间:2016-08-12 16:55:36

标签: c windows visual-studio-2010 cmd

我是C编程的新手,我正在开发一个简单的Win32控制台应用程序来帮助我学习。我在工作中这样做,他们为我提供了Visual Studio 2010.我们的工作计算机受到限制,因此我无法安装其他软件或进行需要管理员访问的更改。

在尝试调试我的程序时,我发现有几个选项可用。以下两个是我想要使用的:

  1. 开始调试
  2. 启动而不调试
  3. 当我选择选项1时,应用程序将直接启动(就像我双击.exe文件一样)。但是,当我选择选项2时,应用程序通过cmd.exe间接启动。此外,在应用程序正常终止的位置,会出现一行文本,其中显示“按任意键继续”。这使控制台保持打开状态,直到我按下另一把钥匙。

    有没有办法在Visual Studio中修改设置,以便选项1的行为与选项2相同但仍允许调试?如果没有,是否有任何其他解决方法可以实现相同的功能,并且可以使用单个键盘快捷键启动?

1 个答案:

答案 0 :(得分:1)

不幸的是,我不知道任何开箱即用的"开箱即用的#34; (请参阅下面的替代方法)使用单个keybard命令完成相同操作的方法,但以下是我认为可以帮助您:

  1. 在代码中添加对MessageBox_getch或其他内容的调用以暂停执行,直到用户点击按钮或按下某个键
  2. 使用第二种方法启动应用程序("无需调试")
  3. 当您看到在步骤1中创建的消息框或用户输入提示时,请勿继续
  4. 在Visual Studio下的菜单" Debug"调用"附加到流程..."。
  5. 在当前正在运行的进程列表中找到您的应用程序。您可以通过消息框标题或用户提示或进程ID识别它。选择该流程,然后点击"附加"按钮
  6. 在您看到VS附加到该进程后切换到应用程序(cmd窗口)并单击按钮或按某个键继续执行。从那时起,您的应用程序在调试器下运行
  7. 如果您真的需要一个命令来完成所有这些操作,我认为您需要编写自己的VS macro。如果您需要有关此类宏的帮助,可能需要提出另一个问题。

    <强> [编辑]

    您在问题中说您使用的是VS2010,因此以下内容可能不适合您,但万一我将在此处添加: 如果您使用VS2013或(2015),您可以使用 Child Process Debugging Power Toolanother link),允许您将cmd $(TargetPath)指定为&#34;命令&#34;然后使用你的第一个选项来调试cmd及其子进程,这将恰好是你的进程(来自VS2012的截图,但VS版本中存在相同的选项)

    enter image description here