c++ - 应用程序无法获取命令参数
问题描述
我无法使用 获取命令行参数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并且每次都能完美运行。是否可能不包含正确的标头或项目配置中的任何更改都可能产生冲突?
解决方案
确保将子系统设置为控制台Linker -> SubSytem -> Console (/SUBSYSTEM:CONSOLE)
,不要设置Entry point
设置Whole Program Optimization
为No Whole Program Optimization
和SDL check
转向off
。
推荐阅读
- python - 从数据框中删除列以仅显示需要的列
- node.js - 如何禁用纱线升级的纱线交互提示
- java - 用于在查询之前从带有片段的字符串解析 URI 的库
- c - 我是否需要对 C 中的字符串数组使用 2D 数组?
- c# - 在 Azure 函数中使用实体框架
- docker - 当入口点在 docker run 上回显时,为什么未设置 env 变量?
- r - 当 chartSeries 使用相同的数据集进行绘图时,为什么 addBBands() 函数会出错?
- php - 将几个继承的模型绑定到同一个路由 laravel
- gradle - Gradle 文件依赖项
- typescript - [TypeScript]:通过两个泛型枚举索引类型