父进程头文件定义
PROCESS_INFORMATION m_pi;
HANDLE m_hRead, m_hWrite;
父进程在需要调用子进程的地方
//创建管道
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
CreatePipe(&m_hRead, &m_hWrite, &sa, 0);
//创建进程
STARTUPINFO si = {sizeof(si)};
si.dwFlags=STARTF_USESTDHANDLES;
si.hStdOutput = m_hWrite;
si.hStdInput = m_hRead;
si.hStdError=GetStdHandle(STD_ERROR_HANDLE);
CreateProcess(应用名, 参数, 0, 0, TRUE, 0, 0, 0, &si, &m_pi);
父进程接收消息
DWORD bytesRead = 0;
ReadFile(m_hRead, 接收的数据, 接收数据的长度, &bytesRead, NULL);
父进程发送消息
DWORD bytesWrite = 0;
WriteFile(m_hWrite, 接收的数据, 接收数据的长度, &byteWrite, NULL);
子进程发送消息
HANDLE m_handle = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD bytesWrite = 0;
WriteFile(m_handle, 发送的数据, 发送的数据长度, &bytesWrite, NULL);
子进程接收消息
HANDLE m_handle = GetStdHandle(STD_INPUT_HANDLE);
DWORD bytesRead = 0;
ReadFile(m_handle, 接收的数据, 接收的数据长度, &bytesRead, NULL);