从c+;启动.exe文件+;在窗户里 我尝试从C++ Visual Studio中的代码开始一个程序。 我尝试了这些CMD: system( "\" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\""); system( "start" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\""); system( "\" C:\\Program "" Files""(x86)\\scilab-5.3.3\\bin\\WScilex.exe"");

从c+;启动.exe文件+;在窗户里 我尝试从C++ Visual Studio中的代码开始一个程序。 我尝试了这些CMD: system( "\" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\""); system( "start" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\""); system( "\" C:\\Program "" Files""(x86)\\scilab-5.3.3\\bin\\WScilex.exe"");,c++,C++,他们都不管用,有人知道怎么做吗 提前感谢使用规范的ShellExecuteWinAPI函数。最简单的情况是: ShellExecute(hwnd, "open", "c:\\MyProgramPath\\WScilex.exe", NULL, NULL, 0); 有关更多信息,请参见使用规范的ShellExecuteWinAPI函数。最简单的情况是: ShellExecute(hwnd, "open", "c:\\MyProgramPath\\WScilex.exe", NULL, NULL,

他们都不管用,有人知道怎么做吗
提前感谢

使用规范的
ShellExecute
WinAPI函数。最简单的情况是:

ShellExecute(hwnd, "open", "c:\\MyProgramPath\\WScilex.exe", NULL, NULL, 0);

有关更多信息,请参见使用规范的
ShellExecute
WinAPI函数。最简单的情况是:

ShellExecute(hwnd, "open", "c:\\MyProgramPath\\WScilex.exe", NULL, NULL, 0);

有关更多信息,请参见系统
函数将字符串作为命令传递给Windows[cmd.exe]中系统的默认命令解释器

因此,在命令的开头不要有多余的空间:

system( "\"C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\"" );
[cmd.exe]命令解释器对路径中的正斜杠很满意


您的第一次尝试:

system( "\" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\"");
↑ 在开始时有一个额外的空间。空格很重要,因为命令字符串被引用。但是您需要引号,因为路径包含空格

您的第二次尝试:

system( "start" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\"");
system( "\" C:\\Program "" Files""(x86)\\scilab-5.3.3\\bin\\WScilex.exe"");
↑ 不应该编译。这不是真正的代码。至少没有成功编译和运行的代码

您的第三次尝试:

system( "start" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\"");
system( "\" C:\\Program "" Files""(x86)\\scilab-5.3.3\\bin\\WScilex.exe"");

↑ 在开始时有一个额外的空间。空格很重要,因为命令字符串被引用。但是您需要引号,因为路径包含空格。

函数将字符串作为命令传递给Windows[cmd.exe]中系统的默认命令解释器

因此,在命令的开头不要有多余的空间:

system( "\"C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\"" );
[cmd.exe]命令解释器对路径中的正斜杠很满意


您的第一次尝试:

system( "\" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\"");
↑ 在开始时有一个额外的空间。空格很重要,因为命令字符串被引用。但是您需要引号,因为路径包含空格

您的第二次尝试:

system( "start" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\"");
system( "\" C:\\Program "" Files""(x86)\\scilab-5.3.3\\bin\\WScilex.exe"");
↑ 不应该编译。这不是真正的代码。至少没有成功编译和运行的代码

您的第三次尝试:

system( "start" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe\"");
system( "\" C:\\Program "" Files""(x86)\\scilab-5.3.3\\bin\\WScilex.exe"");

↑ 在开始时有一个额外的空间。空格很重要,因为命令字符串被引用。但是您需要引号,因为路径包含空格。

不要像在命令提示符(cmd)中那样尝试使用引号两次。在C++代码中,如果在文件路径中有“空格”,则不需要在引号中指定它。

您应该使用'WinExec'而不是'system',这样控制台窗口就不会显示

e、 g


不要像在命令提示符(cmd)中那样尝试使用引号两次。在C++代码中,如果在文件路径中有“空格”,则不需要在引号中指定它。

您应该使用'WinExec'而不是'system',这样控制台窗口就不会显示

e、 g


我认为hemendra的答案简单而正确!我认为hemendra的答案简单而正确!谢谢,我用了“干杯和hth.-Alf”的建议,很短。别忘了接受你问题的正确答案!谢谢,我用了“干杯和hth.-Alf”的建议,很短。别忘了接受你问题的正确答案!