C++多进程数据共享
1.创建子进程
int process_1(wchar_t commandLine2[]) {
STARTUPINFO si = {
sizeof(STARTUPINFO) };//在产生子进程时,子进程的窗口相关信息
PROCESS_INFORMATION pi; //子进程的ID/线程相关信息
DWORD returnCode;//用于保存子程进的返回值;
//wchar_t commandLine2[] = L"../x64\\Debug\\exe_a\\py_to_c"; //测试命令行参数二
BOOL bRet = CreateProcess( //调用失败,返回0;调用成功返回非0;
NULL, //一般都是空;(另一种批处理情况:此参数指定"cmd.exe",下一个命令行参数 "/c otherBatFile")
commandLine2, //进程路径,例 L"C:\\Users\\ps\\Desktop\\c++_into_python\\python_to_c-1\\process_2\\x64\\Debug\\process_2",不需要.exe后缀
NULL, //_In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,
NULL, //_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
FALSE, //_In_ BOOL bInheritHandles,
CREATE_NEW_CONSOLE, //新的进程使用新的窗口。显示窗口CREATE_NEW_CONSOLE 隐藏窗口CREATE_NO_WINDOW
NULL, //_In_opt_ LPVOID lpEnvironment,
NULL, //_In_opt_ LPCTSTR lpCurrentDirectory,
&si, //_In_ LPSTARTUPINFO lpStartupInfo,
&pi); //_Out_ LPPROCESS_INFORMATION lpProcessInformation
if (bRet)
{
std::cout << "process is running..." << std::endl;
//等待子进程结束
//WaitForSingleObject(pi.hProcess, -1);
std::cout << "process is finished" << std::endl;
//获取子进程的返回值
GetExitCodeProcess(pi.hProcess, &returnCode);
std::cout << "process return code:" << returnCode << std::endl;
}
else
{
std::cout << "Create Process error!" << std::endl;
return 0;
}
//getchar();
CloseHandle(