#include <windows.h>#include<stdio.h>#include<tchar.h>void_tmain (VOID) {startupinfo si; Process_information Pi; LPTSTR szCmdLine=_tcsdup (TEXT ("mychildprocess")); ZeroMemory (&si,sizeof(SI)); SI.CB=sizeof(SI); ZeroMemory (&PI,sizeof(PI)); //Start the child process. if( ! CreateProcess (NULL,//No Module name (use command line)szCmdLine,//Command LineNull//Process handle not inheritableNull//Thread handle not inheritableFALSE,//Set handle inheritance to FALSE 0,//No Creation FlagsNull//Use Parent ' s environment blockNull//Use parent ' s starting directory&si,//Pointer to STARTUPINFO structure&PI)//Pointer to Process_information structure) {printf ("CreateProcess failed (%d)./n", GetLastError ()); return; } //Wait until child process exits.WaitForSingleObject (pi.hprocess, INFINITE); //Close process and thread handles.CloseHandle (pi.hprocess); CloseHandle (Pi.hthread);}
The above is the official MSDN example.
GetExitCodeProcess is a way to return the results.
[Windows C] CreateProcess