将字符串数组传递给多个进程的 for 循环中的 CreateProcess
Pass an string array to CreateProcess in for loop for multiple processes
我不得不承认,我在这个代码中不熟悉的大多数win32 api东西。话虽如此,我想将我所知道的融入到我的学习过程中。我正在尝试创建一个 for 循环,每次都会使用不同的参数多次CreateProcess
。在Visual Studio中,我收到一个编译错误:
source.cpp(138): error C3867: 'std::basic_string<_Elem,_Traits,_Alloc>::c_str': function call missing argument list; use '&std::basic_string<_Elem,_Traits,_Alloc>::c_str' to create a pointer to member
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Alloc=std::allocator<char>
1> ]
运行以下代码时:
std::string arrString[3] = {"dir","cd ..","dir"};
int i;
LPWSTR cmd =L"cmd";
for(i=0; i<3; i++)
{
STARTUPINFO info={sizeof(info)};
PROCESS_INFORMATION processInfo;
if (CreateProcess(cmd, arrString[i].c_str, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))
{
::WaitForSingleObject(processInfo.hProcess, INFINITE);
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
}
我甚至朝着正确的方向前进吗?
编辑:
std::string arrString[3] = {"cmd","cmd","cmd"};
int i;
LPWSTR cmd =L"cmd";
for(i=0; i<3; i++)
{
STARTUPINFO info={sizeof(info)};
PROCESS_INFORMATION processInfo;
vector<wchar_t> cmdline(arrString[i].begin(), arrString[i].end());
CreateProcessW(cmd, &cmdline[0], NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo);
::WaitForSingleObject(processInfo.hProcess, INFINITE);
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
}
在这一行中
if (CreateProcess(cmd, arrString[i].c_str, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))
当你的意思是arrString[i].c_str()
时,你写了arrString[i].c_str
.
相关文章:
- "error: no matching function for call to"构造函数错误
- 表示"accepting anything for this template argument" C++概念的通配符
- 如何在C++中从两个单独的for循环中添加两个数组
- boost::进程间消息队列引发错误
- 在Linux for Windows上编译C++代码时出错
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 调用专用模板时出错"no matching function for call to [...]"
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 为什么我的for循环不能正确获取argv
- 为什么我不能在 FOR LOOP 中使用 i/10,C++?
- IPC使用多个管道和分支进程来运行Python程序
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 在基于范围的for循环中使用结构化绑定声明
- 异常属于C++中的线程还是进程
- WMI检测进程创建事件-c++
- 通过for循环使用用户输入填充列表
- 使用for循环检查数组中的重复项
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 如何使用Boost进程间消息队列for Windows
- 将字符串数组传递给多个进程的 for 循环中的 CreateProcess