我使用process::start(PATH);
來打開進程。問題是,有時它會找到該文件,有時它不會。C++進程啓動問題,路徑爲
例如,這個工程:
process::start("C:\text.exe");
但是,這並不工作:
process::start("C:\New Folder\text.exe");
任何想法有什麼區別?
我使用process::start(PATH);
來打開進程。問題是,有時它會找到該文件,有時它不會。C++進程啓動問題,路徑爲
例如,這個工程:
process::start("C:\text.exe");
但是,這並不工作:
process::start("C:\New Folder\text.exe");
任何想法有什麼區別?
你必須逃過\
個字符。
在C字符串中\t
是TAB字符。使用:
process::start("C:\\New Folder\\text.exe");
這是我第一次想到,但爲什麼「C:\ text.exe」工作?它應該變成'C:ext.exe' – 2010-08-09 01:44:08
是的,它會。如果你在命令行鍵入'c:ext.exe'(甚至是'c:blah blah blah'),你會發現它不會給你一個錯誤。我不確定OP如何定義「成功」,但如果它只是「沒有錯誤產生」,那就可以解釋它。 – paxdiablo 2010-08-09 01:47:16
哦,當然。所以這可能是這個和[薩克森的答案](http://stackoverflow.com/questions/3436857/c-process-start-problem-with-path/3436875#3436875)關於逃脫空間的組合 – 2010-08-09 01:48:54
庫可能認爲c:\ New是您正在運行的程序,而Folder \ text.exe是您傳遞給它的參數。
您可能需要引用它,所以你調用此:其中作爲C++字符串應該是這樣的
"C:\New Folder\text.exe"
:
process::start("\"C:\\New Folder\\text.exe\"");
凡定義'process'? – 2010-08-09 01:42:21