C ++ LPCTSTR如何将命令行参数传递给子进程

时间:2015-03-09 08:02:40

标签: c++ windows command-line pipe lptstr

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...)

我在这里尝试做的是尝试将父命令行args传递给child。但它是LPTSTR,我不知道如何组合stringLPTSTR类型并将其传递给孩子。它给我类型def。错误。我使用Visual Studio 2013和C ++。

1 个答案:

答案 0 :(得分:3)

根据documentation

此函数的Unicode版本CreateProcessW可以修改此字符串的内容。因此,此参数不能是只读内存的指针(例如const变量或文字字符串)。如果此参数是常量字符串,则该函数可能会导致访问冲突。

文档示例:

LPTSTR szCmdline[] = _tcsdup(TEXT("\"C:\\Program Files\\MyApp\" -L -S"));
CreateProcess(NULL, szCmdline, /* ... */);