используя CreateProcess с относительным путем - PullRequest
2 голосов
/ 20 декабря 2010

Можно ли передать относительный путь для создания моего дочернего процесса? Этот код скомпилируется, но выдает ошибку, потому что я использую относительный путь.

void Cminivideo3App::creerChildProcess(void)
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;

    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );

    // Start 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();


}

Ответы [ 2 ]

5 голосов
/ 20 декабря 2010

Пара вещей:

  1. Как говорит @Oswald, \ является корневой папкой текущего диска, а не относительным путем.
  2. Ты забыл убежать от обратной косой черты. Вы действительно хотите TEXT("..\\Debug\\traitement.exe").
5 голосов
/ 20 декабря 2010

Это не похоже на относительный путь для меня.\ - корневая папка текущего диска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...