2010-08-09 90 views
0

我使用process::start(PATH);來打開進程。問題是,有時它會找到該文件,有時它不會。C++進程啓動問題,路徑爲

例如,這個工程:

process::start("C:\text.exe"); 

但是,這並不工作:

process::start("C:\New Folder\text.exe"); 

任何想法有什麼區別?

+1

凡定義'process'? – 2010-08-09 01:42:21

回答

4

你必須逃過\個字符。

在C字符串中\tTAB字符。使用:

process::start("C:\\New Folder\\text.exe"); 
+0

這是我第一次想到,但爲什麼「C:\ text.exe」工作?它應該變成'C:ext.exe' – 2010-08-09 01:44:08

+1

是的,它會。如果你在命令行鍵入'c:ext.exe'(甚至是'c:blah blah blah'),你會發現它不會給你一個錯誤。我不確定OP如何定義「成功」,但如果它只是「沒有錯誤產生」,那就可以解釋它。 – paxdiablo 2010-08-09 01:47:16

+0

哦,當然。所以這可能是這個和[薩克森的答案](http://stackoverflow.com/questions/3436857/c-process-start-problem-with-path/3436875#3436875)關於逃脫空間的組合 – 2010-08-09 01:48:54

2

庫可能認爲c:\ New是您正在運行的程序,而Folder \ text.exe是您傳遞給它的參數。

您可能需要引用它,所以你調用此:其中作爲C++字符串應該是這樣的

"C:\New Folder\text.exe" 

process::start("\"C:\\New Folder\\text.exe\"");