Отладка с помощью «Командных аргументов» в Visual Studio не работает - PullRequest
0 голосов
/ 14 января 2019

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");
}

Затем я установил «Аргументы команд»: Проект: Свойства: Отладка: «Аргументы команд»: мама

enter image description here

Я нажал кнопку 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.

enter image description here

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Я думаю, что ваша главная проблема здесь - несоответствие свойств конфигурации / свойств отладки и того, на какой платформе вы фактически отлаживаете / запускаете решение.

Убедитесь, что они выровнены.

Пример - эта конфигурация для Platform: x64

enter image description here

Когда решение запускается / отлаживается, вам необходимо убедиться, что вы отлаживаете на той же платформе:

enter image description here

Если ваша Платформа не x64,, то настройте и запустите проект в Platform: x86 или All Platforms, как предложено.

0 голосов
/ 14 января 2019

Как объяснено в 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, где аргументы пусты.

Лучший способ - установить для них значение «Любой процессор», поскольку маловероятно, что оно будет различным в зависимости от целевого процессора.

...