using CreateProcess with a relative path
Is it possible to pass a relative path to create my child process? This code will compile, but it gives an error because I'm using a relative path.
void Cminivideo3App::creerChildProcess(void)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
// S开发者_Go百科tart the child process.
int retvalue = CreateProcess( TEXT("\..\Debug\traitement.exe"), // No module name (use command line)
NULL, // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi // Pointer to PROCESS_INFORMATION structure
);
int lastError = GetLastError();
}
Couple things:
- As @Oswald says,
\
is the root folder of the current drive, not a relative path. - You forgot to escape your backslashes. You really want
TEXT("..\\Debug\\traitement.exe")
.
It does not look like a relative path to me. \
is the root folder of the current drive.
精彩评论