在 Visual Studio 中使用“命令参数”进行调试不起作用

jdl*_*jdl 6 c debugging commandargument visual-studio-2017

VS 没有使用我传入的“命令参数”运行。我做错了什么?

尝试在 Visual Studio 中使用“命令参数”。
我把它分解成一个简单的 C 语言小 ConsoleApplication 程序。

#include "pch.h"
#include <iostream>

int main(int argc, char *argv[])
{
  printf("\nargv: ");
  for (int i = 0; i < argc; i++)
  {
    printf(" %s", argv[i]);
  }
  printf("\n");
}
Run Code Online (Sandbox Code Playgroud)

然后我设置“命令参数”:项目:属性:调试:“命令参数”:妈妈

在此处输入图片说明

我点击了 RUN 按钮并显示了它(我的参数没有传入):

argv:  C:\Users\jack\source\repos\ConsoleApplication45\Debug\ConsoleApplication45.exe

C:\Users\jack\source\repos\ConsoleApplication45\Debug\ConsoleApplication45.exe (process 1812) exited with code 0.
To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
Press any key to close this window . . .
Run Code Online (Sandbox Code Playgroud)

当我从命令行运行时,我得到(按我希望的方式使用传入的参数工作:“妈妈”):

C:\Users\jack\source\repos\ConsoleApplication45\Debug>ConsoleApplication45.exe mom

argv:  ConsoleApplication45.exe mom

C:\Users\jack\source\repos\ConsoleApplication45\Debug>
Run Code Online (Sandbox Code Playgroud)

感谢您提供链接 Jean-François Fabre:
是的,我必须从 x86 更改为 x64。

在此处输入图片说明

Jea*_*bre 6

如https://social.msdn.microsoft.com/Forums/vstudio/en-US/4097114c-8678-46bb-ba3b-7a2da8514efc/visual-studio-2017-not-passing-command-line-arguments-to中所述-the-application?forum=vsdebug ,当您需要为其他 CPU 设置参数时,您仅为 x64 目标设置参数。

您可能正在运行 x86,其中参数为空。

最好的方法是将它们设置为“任何 CPU”,因为根据您的目标处理器,它不太可能有所不同。