Приложение не может получить аргумент команды - PullRequest
2 голосов
/ 28 мая 2019

Я не могу получить аргумент командной строки с 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;
}

Я всегда использую этот int main(int argc, char* argv[]) и передаю команду arg с ProjectProperties-> Debugging-> Command Argument и работает идеально каждый раз. Возможно ли, что правильные заголовки не включены или какие-либо изменения в конфигурации проекта могут привести к конфликту?

1 Ответ

1 голос
/ 29 мая 2019

Обязательно установите для подсистемы консоль Linker -> SubSytem -> Console (/SUBSYSTEM:CONSOLE) и не устанавливайте Entry point, установите Whole Program Optimization на No Whole Program Optimization и поверните SDL check на off.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...