Меня смущают первые 2 params, module и command-line. Я нахожу, если я не заселяю и то, и другое не работает правильно, и, похоже, в документации говорится об обратном.Путаница над Win32 CreateProcess
Я хочу назвать «testApp.exe param1 = 123»
Единственный способ я нашел, что работает это:
CreateProcess("testApp.exe","testApp.exe param1=123",...
Я думал, что любой из них должен работать, но не везло до сих пор:
CreateProcess("testApp.exe","param1=123",...
CreateProcess(NULL,"testApp.exe param1=123",...
Я читал документы msdn несколько раз, так что мне не хватает?
Это ваш * точный * код с точной командной строкой? (BTW, обратите внимание, что командная строка не может быть строковым литералом, аргумент должен быть строкой, отличной от 'const'.) – jamesdlin
'Версия Unicode этой функции CreateProcessW может изменять содержимое этой строки. Поэтому этот параметр не может быть указателем на постоянную память (например, константную переменную или литеральную строку). Если этот параметр является константой, функция может вызвать нарушение прав доступа. ' –
Является ли ваша точка зрения, что вы считаете себя в безопасности, потому что вы не используете версию Unicode? Это еще не значит, что это хорошая идея. (Это подразумевалось как общий совет, а не как ответ на ваш вопрос.) – jamesdlin