【问题标题】:Change the path for system command parameters更改系统命令参数的路径
【发布时间】:2012-02-22 05:35:33
【问题描述】:

我有一个 C++ 项目,我已经为其生成了一个 .exe。

程序代码如下:

system(TestApplication.exe input.txt output.txt)
system(TestApplication1.exe input1.txt output1.txt)
system(TestApplication2.exe input2.txt output2.txt)

我实际上尝试将 .exe 保存在项目目录中的另一个文件夹中,即(EXE)和另一个文件夹中的文件(数据)。

如果更改exe的路径,它实际上无法找到文件。我认为在系统中更改路径存在问题,因为它告诉 EXE 不是可识别的命令:

system("EXEs/TestApplication1.exe .... )

C++中系统命令的路径是如何改变的?

【问题讨论】:

  • 为什么不能把exe的整个路径给系统命令?为此,请使用一个变量并 sprintf 它的路径、exe 名称和所需的参数。
  • 因为项目目录路径不断从另一个项目更改。所以,我更喜欢真实的路径
  • 那么您应该始终确保可执行文件与项目目录存在于同一目录中,并且项目目录应设置在环境变量中,以便您可以使用项目目录路径访问可执行文件。
  • @Raghuram:你能在这里给出一个系统命令中相对路径的简短示例,这样我就可以交叉检查我是否做错了什么?

标签: c++ visual-c++


【解决方案1】:

假设你的项目目录设置为

set PROJECT_DIR = "C:\myproject\rundir"

你的可执行文件在项目目录中,它在文件夹中

C:\myproject\myexdir\

那么你可以做的是总是使用 PROJECT_DIR 来定位你的可执行文件,比如

char myexe_dir[256];
sprintf(myexe_dir,"%s\\..\\myexdir\\a.exe arg1 arg2",getenv("PROJECT_DIR"));
system(myexe_dir);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 2018-01-05
    • 2014-06-07
    • 2013-08-11
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多