我无法使用int main(int argc, char* argv[])
获取命令行参数,没有错误发生,但是当想要进行进一步操作时,我看到argv[ ]
和其他相关变量没有任何值,并说{{1 }},然后发生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 Argument 传递命令arg,并且每次都能完美运行。是否可能没有适当的标题,或者项目配置中的任何更改都可能导致冲突?
答案 0 :(得分:1)
请确保将子系统设置为控制台Linker -> SubSytem -> Console (/SUBSYSTEM:CONSOLE)
,并且不要设置Entry point
并将Whole Program Optimization
设置为No Whole Program Optimization
并将SDL check
设置为{{1} }。