У меня есть программа на c / C++, и я хочу перезапустить ее с помощью функции ShellExecuteEx с почти теми же аргументами, которые были переданы моей программе:
int main(int argc, char *argv[]);
В моем случае мне нужно изменить один argv и вместе с остальными argvs я хочу объединить их в одну строку. Однако в argv могут быть пробелы, специальные символы ... Как правильно создать строку аргумента из массива argv?
Что такое C / C++?
GetCommandLine - это хорошо, спасибо, но что, если я хочу вручную перебрать argv и создать строку аргумента? Достаточно ли заключить отдельные аргументы в кавычки »?
Нет, этого недостаточно. Смотрите, дуп.
Если вам нужно передать «точно такие же аргументы», вызов GetCommandLine()
- правильное решение. Непонятно, почему вы считаете, что вам нужно перебирать аргументы обработанный, по существу отменяя обработку. У вас уже есть решение, зачем все усложнять?
Я отредактировал свой вопрос: в моем случае мне нужно изменить один argv, и вместе с остальными argv я хочу объединить их в одну строку.
если вы перезапуск self exe и хотите передать информацию новому exec - лучше всего получить строку командной строки через GetCommandLineW () и добавить до конца вашего дополнительного параметра в вашем частном формате
Используйте
GetCommandLine()
.