Как получить точно такой же эффект, как при использовании запуска из StartMenu для вызова программы с аргументами командной строки в C++/CLI?

в программе 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++, чтобы его вызов имел точно такой же эффект, как я вызываю из "Пуск->выполнить"

Спасибо


person Matt    schedule 29.06.2011    source источник
comment
попробовал также более полный способ, например: stackoverflow.com/questions/486087/   -  person Matt    schedule 29.06.2011


Ответы (1)


Проблема заключается в вашей строке для параметра 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"
);  //    ^^     ^^ ^^        ^^
person ildjarn    schedule 29.06.2011
comment
Да, точно. На самом деле я обнаружил эту глупую ошибку через несколько минут после публикации... но я не могу ответить на свой вопрос, так как у меня слишком мало очков репутации. - person Matt; 29.06.2011