Отладка с помощью "Командных аргументов" в Visual Studio не работает
VS не работает с "Командными аргументами", которые я передал. Что я делаю не так?
Попытка работать с "Командными аргументами" в Visual Studio.
Я разбил его на простую небольшую программу ConsoleApplication на C.
#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");
}
Затем я устанавливаю "Аргументы команд": Проект: Свойства: Отладка: "Аргументы команд": мама
Я нажимаю кнопку RUN, и это отображается (мой аргумент не передан):
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 . . .
Когда я запускаю из командной строки, я получаю (работает так, как я хочу, с параметром, передаваемым в: "мама"):
C:\Users\jack\source\repos\ConsoleApplication45\Debug>ConsoleApplication45.exe mom
argv: ConsoleApplication45.exe mom
C:\Users\jack\source\repos\ConsoleApplication45\Debug>
Спасибо за ссылку Жан-Франсуа Фабр:
Да, я должен был перейти на x64 с x86.
2 ответа
Как объясняется в 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, вы устанавливаете аргументы только для цели x64, когда вам нужно установить их для какого-либо другого процессора.
Возможно, вместо этого вы используете x86, где аргументы пусты.
Лучший способ - установить для них значение "Любой процессор", поскольку вряд ли оно будет различным в зависимости от целевого процессора.
Я думаю, что вашей главной проблемой здесь является несоответствие свойств конфигурации / свойств отладки и того, на какой платформе вы фактически отлаживаете / запускаете решение.
Убедитесь, что они выровнены.
Пример - эта конфигурация для Platform: x64
Когда решение запущено / отлажено, вы должны убедиться, что вы отлаживаете на той же платформе:
Если ваша платформа не x64,
затем настройте и запустите проект Platform: x86
или же All Platforms
как предложено.
Я думал, что вижу аналогичную проблему, но понял, что проблема связана с работой диалогового окна "Страницы свойств". В предыдущих версиях Visual Studio выбор проекта и щелчок правой кнопкой мыши по свойствам открывал диалоговое окно с конфигурацией, установленной на активную конфигурацию.
В Visual Studio 2017 это больше не так, и, похоже, открывается с последней отредактированной конфигурацией, что сбивает с толку и может привести к тому, что кто-то изменит параметр для неправильной конфигурации, как показано выше. Не очень хорошая перемена...