Есть программа с атрибутами. Атрибуты: 1) запускается программа, 2) подхватывается предварительно созданный файл и 3)параметры для него.
"C:\Program Files (x86)\Marilou2010\Bin\Exec.exe" /p:"C:\Users\admin\Desktop\right hand_text\ServoMotor\ServoMotor.mdsp" /c:"Normal"
Пытаюсь заставить консоль на с++ запустить ее. Пытался через spawnl и shellexecute. До этого запускал экзешники через CreateProcess, но они не содержали атрибутов/параметров.
spawnl(P_NOWAIT, "\"C:\\Program Files (x86)\\Marilou2010\\Bin\\Exec.exe\" /p:\"C:\\Users\\admin\\Desktop\\right hand_text\\ServoMotor\\ServoMotor.mdsp\" /c:\"Normal\"", NULL);
ShellExecute(NULL, "open","\"C:\\Program Files (x86)\\Marilou2010\\Bin\\Exec.exe\" /p:\"C:\\Users\\admin\\Desktop\\right hand_text\\ServoMotor\\ServoMotor.mdsp\" /c:\"Normal\"", NULL, NULL,SW_SHOWNORMAL);
Ну посмотрите, как spawnl объявлена...
int spawnl(int mode, char *fname, char *arg0, ..., char *argN, NULL)
Т.е. по логике, вы должны вызывать как
spawnl(P_NOWAIT,
"C:\\Program Files (x86)\\Marilou2010\\Bin\\Exec.exe", // Запускаемая программа
"C:\\Program Files (x86)\\Marilou2010\\Bin\\Exec.exe", // argv0 - да хоть NULL тут, не так важно...
"/p:\"C:\\Users\\admin\\Desktop\\right hand_text\\ServoMotor\\ServoMotor.mdsp\"",
"/c:\"Normal\"",
NULL);
(Будем надеяться, что ваша программа правильно отработает кавычки в параметрах).
Что здесь, что в ShellExecute вы смешиваете в кучу имя выполнимого файла и передаваемые аргументы командной строки.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей