C ++:如何识别您的程序是从Visual Studio启动的,而不是从OS启动的?

时间:2012-02-01 06:49:36

标签: c++ visual-studio

拥有以下代码:

int main(int argc, char* argv[]) {
  // program code
  std::cout << std::endl << "Press <ENTER> to exit..." << std::endl;
  std::getchar();
  return 0;
}

当我从Visual Studio启动此程序时,它写道:

"Press <ENTER> to exit..."

等待按下ENTER键,而不是写入Visual Studio标准:

"Press any key to continue..."

因此,从Visual Studio(Ctrl + F5)我需要按两次按钮,但只需要一个按钮。

如何解决此问题(某些代码检测从Visual Studio启动并允许“注释”我的“按键等待代码”)?

由于

3 个答案:

答案 0 :(得分:4)

您可以设置项目设置,以便Visual Studio在每次启动时将命令行参数传递给您的程序。因此,只需创建一个命令行参数,告诉它不要在退出时暂停,并设置Visual Studio来传递该参数。

如果您之前从未使用过命令行参数,则会在argc中的argv / main中显示。

答案 1 :(得分:3)

只需摆脱“按Enter键退出”代码并退出。这是一个毫无意义的事情,使得在脚本中使用程序或过滤器变得更加困难。你永远不会养成那种坏习惯,然后开发它并且必须打破它,这样会好得多。

答案 2 :(得分:1)

我可以想到几种方法来做到这一点。一种方法是让Visual Studio在调试器中启动它时将命令行标志传递给程序(Project Properties-&gt; Debug-&gt; Command Line Arguments)。

另一个技巧是探测是否附加了调试器。那里有good sample code at Code Project