2011-07-11 47 views
0

爲什麼這段代碼不起作用? :(CString中的路徑有什麼問題?

CString parameterA = _T("c:\Program Files\test\identify.exe"); 
    CString parameterB = _T(" -format \"%w\" ") + pictureName; 

    if (CreateProcess(parameterA.GetBuffer(), parameterB.GetBuffer(),0,0,TRUE, 
      NORMAL_PRIORITY_CLASS|CREATE_NO_WINDOW,0,0,&sInfo,&pInfo)) 
      { 
      WaitForSingleObject (pInfo.hProcess, INFINITE); 
      } 

但是,當我改變了....

CString parameterA = _T("c:\Program Files\test\identify.exe"); 

到..

CString parameterA = _T("identify.exe"); 

它只是工作。

幫助我..

+0

你爲什麼要張貼同樣的問題十幾次?刪除除一個以外的所有內容,然後將問題完全發佈到一個! – Ajay

回答

1

這是斜線。

CString parameterA = _T("c:\Program Files\test\identify.exe"); 

注意,你必須轉義序列\P\t\i,其中只有一個實際上意味着什麼(\t是一個製表符,而不是你真正想要的!)。

相反,還有反斜槓所以他們可以得到解釋爲斜線:

CString parameterA = _T("c:\\Program Files\\test\\identify.exe"); 
+0

謝謝!解決了它:) – karikari