【问题标题】:c++ process start problem with pathc ++进程启动路径问题
【发布时间】:2010-08-09 01:38:38
【问题描述】:

我正在使用process::start(PATH); 来打开进程。问题是,有时它会找到文件,有时却找不到。

例如,这是有效的:

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

但这不起作用:

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

知道有什么区别吗?

【问题讨论】:

    标签: c++ visual-c++ process path


    【解决方案1】:

    您必须转义 \ 字符。

    在 C 字符串中 \t 是 TAB 字符。使用:

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

    【讨论】:

    • 这是我的第一个想法,但为什么 "C:\text.exe" 工作?它应该变成C: ext.exe
    • 是的,它会的。如果你在命令行输入c: ext.exe(甚至c: blah blah blah),你会发现它不会给你错误。我不确定 OP 是如何定义“成功”的,但如果它只是“没有产生错误”,那就可以解释了。
    • 哦,当然。所以这可能是这个和Saxon's answer关于转义空格的组合
    【解决方案2】:

    库可能认为 c:\New 是您正在运行的程序,Folder\text.exe 是您传递给它的参数。

    你可能需要引用它,所以你这样称呼:

    "C:\New Folder\text.exe"
    

    C++ 字符串如下所示:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-15
      • 1970-01-01
      相关资源
      最近更新 更多