Как получить такой же эффект, как при использовании «Run ...» из StartMenu для вызова программы с аргументами командной строки в C ++ / CLI? - PullRequest
0 голосов
/ 29 июня 2011

в программе на C ++ / CLI, которую я использую

System::Diagnostics::Process::Start("D:\\users\\Z\\project1\\Sent_0.93\\plotCon\\tester\\bin\\Debug\\tester.exe","20 D:\users\Z\project1\Bright20");

для вызова tester.exe, который является еще одним проектом, написанным на C # (но я думаю, что здесь это не имеет значения) тогда что-то странное происходит сейчас. Если я отлаживаю программу на C # с аргументами командной строки, указанными в настройках проекта, она работает как положено. Если я вызываю эту C # программу из меню Пуск-> Выполнить, она также работает нормально. но с учетом приведенной выше строки программа C # запускается, но ведет себя довольно странно. Таким образом, вопрос в том, почему и как изменить код C ++, чтобы его вызов имел точно такой же эффект, как я вызываю из «Start-> run»

Спасибо

1 Ответ

2 голосов
/ 29 июня 2011

Проблема в том, что ваша строка для параметра arguments - "20 D:\users\Z\project1\Bright20" имеет встроенные escape-символы, вам необходимо использовать двойную обратную косую черту, как вы правильно сделали для параметра fileName:

System::Diagnostics::Process::Start(
    "D:\\users\\Z\\project1\\Sent_0.93\\plotCon\\tester\\bin\\Debug\\tester.exe",
    "20 D:\\users\\Z\\project1\\Bright20"
);  //    ^^     ^^ ^^        ^^
...