首页 > 解决方案 > 应用程序无法获取命令参数

问题描述

我无法使用 获取命令行参数int main(int argc, char* argv[]),没有发生错误,但是当要进行进一步操作时,我看到该argv[ ]变量和其他相关变量没有任何值,Error reading characters of string然后说Acces violation reading location发生错误。

这是我的问题的示例代码,我不得不缩小它以使其可读:

#include "CommonHeaders.h"

void Start(char *input)
{
  lstrcpyA(host, input); 
  // In this point i see in my Debugger "Locals/Autos" that nothing 
  // is passed to function then a "Access violation ... " happens.
  // ...
}

int main(int argc, char *argv[])
{
  Start(argv[1]);
  return 0;
}

我总是使用它并通过ProjectProperties->Debugging->Command Argumentint main(int argc, char* argv[])传递命令 arg并且每次都能完美运行。是否可能不包含正确的标头或项目配置中的任何更改都可能产生冲突?

标签: c++pointersconfigurationvisual-studio-2017arguments

解决方案


确保将子系统设置为控制台Linker -> SubSytem -> Console (/SUBSYSTEM:CONSOLE),不要设置Entry point设置Whole Program OptimizationNo Whole Program OptimizationSDL check转向off


推荐阅读