我使用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