Вызов приложения из кода
Для моего вызова наткнулся на замечательную встроенную функцию _wsystem.
Но как только в пути к программе появились пробелы, началась фигня. _wsystem возвращает 1, а в поток ошибок пишется часть пути до первого пробела с сообщением, что это не является внутренней программой. При этом в строке-параметре я команду экранирую кавычками (например, посылаю так: "D:\test folder\test.exe").
Взял строку, которая подается на _wsystem, и с ней запустил в консоли вручную. Работает!
При этом из моего приложения продолжает не работать.
Как быть в такой ситуации? Что делаю неправильно? Может стоит использовать другую функцию, не _wsystem?
Строку надо предавать в двойных кавычках:
При этом в строке-параметре я команду экранирую кавычками (например, посылаю так: "D:\test folder\test.exe")
Наверное, плохо выразился. Вот то, что в скобках, это уже уходит в _wsystem. То есть в коде выглядит так:
Код:
CUnicodeString cmdFullString = L"\"" + commandName + L"\" " + cmdParameters;
int returnCode = _wsystem( cmdFullString );
int returnCode = _wsystem( cmdFullString );
Стал писать так:
Код:
int returnCode = _wsystem( "call " + cmdFullString );
Почему? Не знаю. До сих пор не понимаю, почему не работало без call