2010-12-20 213 views
2

是否可以傳遞一個相對路徑來創建我的子進程? 此代碼將進行編譯,但由於使用相對路徑,因此會出現錯誤。使用CreateProcess和相對路徑

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


} 

回答

5

兩件事情:

  1. 作爲@Oswald說,\是當前驅動器的根文件夾,而不是相對路徑。
  2. 你忘了逃避你的反斜槓。你真的想要TEXT("..\\Debug\\traitement.exe")
+0

由於某種原因,今天它的工作。我已經放棄了子進程,並且正在使用Visual Studio來啓動這兩個項目。非常感謝! – toto 2010-12-21 15:39:25

5

它看起來不像我的相對路徑。 \是當前驅動器的根文件夾。

+0

謝謝,我不知道。 – toto 2010-12-21 15:39:48