2010-08-09 95 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\"");