std :: system()无法正常工作

oel*_*rld 3 c++ shell command-line cmd system

如果我在命令行上执行命令"C:\ Windows\system32\java.exe",我将获得有关如何使用Java的信息.但是,当我写一个简单的c ++程序来做同样的事情

#include <iostream>

int main()
{
    std::system("C:\\Windows\\system32\\java.exe");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到以下控制台输出:

'C:\Windows\system32\java.exe' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

我在Windows 10上使用mingw-w64编译器.

dew*_*led 5

这是Windows在x64系统上的兼容性重定向:

在大多数情况下,只要32位应用程序尝试访问%windir%\ System32,就会将访问权限重定向到%windir%\ SysWOW64.

如果您的控制台是64位并且应用程序构建为32位(反之亦然),则它们将以相同名称显示不同system32目录的内容.