在 Visual Studio 中使用 "Command Arguments" 进行调试无效

Debugging with "Command Arguments" in Visual Studio not working

VS 不是 运行 我传递的 "Command Arguments" 我做错了什么?

尝试在 Visual Studio 中与 "Command Arguments" 合作。
我将其分解为一个简单的 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");
}

然后我设置 "Command Arguments": Project: Properties: Debugging:"Command Arguments": mom

我点击了 运行 按钮并显示了这个(我的参数没有传入):

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 . . .

当我从命令行 运行 时,我得到(使用传入的参数按照我的意愿工作:"mom"):

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

argv:  ConsoleApplication45.exe mom

C:\Users\jack\source\repos\ConsoleApplication45\Debug>

感谢 link 让-弗朗索瓦·法布尔:
是的,我不得不从 x86 更改为 x64。

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.

您可能是 运行 x86,参数为空。

最好的方法是将它们设置为 "Any CPU",因为它不太可能因目标处理器而异。

我认为您的主要问题是解决方案 configuration/debugging 属性与您实际使用的平台 debugging/running 解决方案不匹配。

确保它们对齐。

示例 - 此配置适用于 Platform: x64

当解决方案为ran/debugged时,需要确保在同一平台进行调试:

如果您的平台不是 x64,,则按照建议配置和 运行 Platform: x86All Platforms 下的项目。

我以为我遇到了类似的问题,但后来意识到问题出在 属性 页面对话框的操作上。在 Visual Studio 的早期版本中,选择一个项目并右键单击“属性”将打开一个对话框,其中的配置设置为活动配置。

在 Visual Studio 2017 中不再是这种情况,并且似乎以上次编辑的配置打开,这令人困惑,并可能导致有人为错误的配置编辑设置,如上所示。不是很好的改变...