Справочная информация: Windows 7, Visual C ++ 2010 Express
Проблема: CreateProcess () продолжает возвращаться с «Недопустимым аргументом командной строки»
Объяснение: Я пишу фрагмент кода, который вызывает внешние программы, используя CreateProcess Windows API. Я получил вызов для работы с одной внешней программой:
if( !CreateProcess( "C:\\Temp\\convert.exe",
t_str, // Arguments
...
}
//where t_str is " C:\\img1.jpeg C:\\img1.pgm" (ImageMagick if you're wondering).
Это прекрасно работает даже при том количестве данных, которое я сделал, чтобы поместить все в строки и указатели Windows. Поэтому я скопировал все искажения для CreateProcess () для другого вызова другой внешней программы:
if( !CreateProcess( "C:\\Temp\\sift.exe",
t_str2, // Arguments
...
}
//where t_str2 is ` < C:\\img1.pgm > C:\\img1.key`
По сути, что-то очень похожее, но со всеми именами переменных, которые были изменены (так как у меня эти два вызова выполняются последовательно). И вот где проблема; он не запускается и вместо этого выводит «Недопустимый аргумент командной строки:
Я переключил t_str2 на что-то немного менее сложное (так как я знаю, как работает sift.exe), и я получил тот же результат. То же самое происходит, когда я бегу просто просеять, а не конвертировать.
Вопрос: Что может быть причиной этой проблемы? Что я мог сделать для дальнейшей отладки этой проблемы? Любые предложения по альтернативам методам, которые я использую? Любая помощь приветствуется. Я могу предоставить дополнительный код, но он довольно прост, и с ним не так уж много.