Execute A Program From A C / C++ Program

To start an external program from a C / C++ program, I used the following code.

GetStartupInfo( &start_info ); // You must fill in this structure
ret = CreateProcess( NULL,  // specify the executable program
(LPSTR)buffer,   // the command line arguments
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW,
NULL,
NULL,
&start_info,
&process_info);

// Successfully created the process.  Wait for it to finish.
WaitForSingleObject( process_info.hProcess, INFINITE );

// Get the exit code.
result = GetExitCodeProcess(process_info.hProcess, &exitCode);

// Close the handles.
CloseHandle( process_info.hProcess );
CloseHandle( process_info.hThread );

The code starts an external program and waits, until this program has finished before processing the next lines of code.

After using this code for a couple of years now, I found a shorter version today …

ret = system((char *)buffer);

I found only one limitation. It will print any of your fprint statements to the Domino console; using CREATE_NO_WINDOW with CreateProcess, you can suppress the output.