gpt4 book ai didi

c++ - system() c++ 不会在 VirtualBox 中运行

转载 作者:行者123 更新时间:2023-11-28 08:04:17 25 4
gpt4 key购买 nike

我正在尝试编译和运行 4 年前创建的应用程序。它是在 Embarcadero RAD Studio C++ 构建器中为 Windows 开发的。现在我尝试使用最新版本的 RAD Studio 在 VirtualBox 中的 Windows 中编译和运行它。我的应用程序中有一个对另一个应用程序的系统调用:

      system("dot.exe -Tjpg -o nfa.jpg NFA_graph.txt");

一直返回1,文件没有创建。我也试过了

      system("Echo %CD% >> z:\log.txt");

并且没有创建文件。我也试过这样:

FILE *fpipe;
char *command = "Echo %CD% >> z:\log.txt";
char line[256];

if (0 == (fpipe = (FILE*)_popen(command, "r")))
{
perror("popen() failed.");
exit(1);
}

while (fread(line, sizeof line, 1, fpipe))
{
ShowMessage(line);
}

_pclose(fpipe);

我一无所获。我想知道这种奇怪行为的原因是否是我在 VirtualBox 中运行这一切?

最佳答案

您没有转义您的\字符。您应该在文件路径中使用/,或者如果必须使用\\。此外,Windows 7 不允许您写入没有管理员访问权限的硬盘驱动器的根目录。

要确定命令环境是否可用,首先执行以下操作:

if (!system(NULL)) {
// Can't make any system() calls
}

如果您的命令环境可用,那么您需要完全指定路径,确保像我上面提到的那样转义\'s,并且不要向驱动器的根目录写入任何内容。另请注意,打开文件不会默认创建目录。

关于c++ - system() c++ 不会在 VirtualBox 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10608233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com