C++ CreateProcess 传递多个参数
时间: 2023-07-03 09:04:14 浏览: 162
c++中参数传递方式讨论
在C++中使用CreateProcess()函数传递多个参数时,需要将参数字符串以空格分隔,并将它们放在一个单独的字符串中。然后,将这个字符串作为CreateProcess()函数的lpCommandLine参数传递。以下是一个示例代码:
```c++
#include <windows.h>
int main()
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
// 多个参数需要用空格分隔,并放在一个字符串中
LPCTSTR lpCommandLine = "program.exe arg1 arg2 arg3";
if (!CreateProcess(NULL, (LPWSTR)lpCommandLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
printf("CreateProcess failed (%d).\n", GetLastError());
return 1;
}
// 等待子进程退出
WaitForSingleObject(pi.hProcess, INFINITE);
// 关闭句柄
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return 0;
}
```
在这个示例中,我们将3个参数(arg1,arg2和arg3)传递给名为program.exe的程序。这些参数被放在一个字符串中,并用空格分隔。然后,我们将这个字符串作为CreateProcess()函数的lpCommandLine参数传递。
阅读全文