C++ LPCTSTR как передать аргументы командной строки дочернему процессу

LPCTSTR applicationName = NUL // NULL => module name from command line
string argument1 = "something";
string argument2 = "anotherthing";
LPTSTR  commandLine = "childpath\\child.exe";
success = CreateProcess(
applicationName,
commandLine,
processSecurityAttrs,etc...)

Здесь я пытаюсь передать аргументы родительской командной строки child. Но это LPTSTRЯ не умею совмещать string а также LPTSTR введите и передайте его ребенку. Это дает мне тип def. ошибка. Я использую Visual Studio 2013 и C++.

1 ответ

Согласно документации:

Версия этой функции Unicode, CreateProcessW, может изменять содержимое этой строки. Следовательно, этот параметр не может быть указателем на постоянную память (такую ​​как переменная const или литеральная строка). Если этот параметр является константной строкой, функция может вызвать нарушение прав доступа.

Пример из документов:

LPTSTR szCmdline[] = _tcsdup(TEXT("\"C:\\Program Files\\MyApp\" -L -S"));
CreateProcess(NULL, szCmdline, /* ... */);
Другие вопросы по тегам