Путаница в Win32 CreateProcess - PullRequest
1 голос
/ 30 июля 2010

Меня смущают первые 2 параметра, модуль и командная строка.Я нахожу, если я не заполняю оба, это не работает должным образом, и кажется, что документация говорит иначе.

Я хочу назвать "testApp.exe param1 = 123"

Единственный способ, который я нашелэто работает:

CreateProcess("testApp.exe","testApp.exe param1=123",...

Я думал, что любой из них должен работать, но пока не повезло:

CreateProcess("testApp.exe","param1=123",...
CreateProcess(NULL,"testApp.exe param1=123",...

Я несколько раз прочитал документы MSDN, так что яотсутствует

Ответы [ 3 ]

2 голосов
/ 30 июля 2010

Первый параметр - это имя исполняемого файла для запуска. Второй параметр - это командная строка. Командная строка не должна содержать имя исполняемого файла, если это не так, и вы передаете что-то вроде

"param1 param2"

затем в вашей программе argv[0] == "param1" и argv[1] == "param2". Поэтому, как правило, вам нужно передать имя исполняемого файла в качестве первого значения, чтобы удовлетворить требования программы, а не Windows.

Если вы не передаете имя исполняемого файла, оно извлекается из первого значения в строке командной строки.

1 голос
/ 30 июля 2010

Я обсуждаю проблемы с получением CreateProcess для запуска exes в статье здесь . Есть несколько вещей, которые могут пойти не так, включая требование о полных путях и отсутствие имен exe в командной строке.

0 голосов
/ 30 июля 2010

Вместо указания имени исполняемого файла попробуйте указать полный путь с именем исполняемого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...