C++ShellExecute的工作方式与cmd.exe不同

C++ ShellExecute is not working the same way as cmd.exe

本文关键字:cmd exe 不同 方式 工作 C++ShellExecute      更新时间:2023-10-16

我正在运行这个命令

w_icrcom.exe j11 hola

在命令提示符下并且运行正常的情况下,exe正在使用参数运行。

但是当我在C++程序中执行同样的操作时,w_icrcom.exe的行为会有所不同。我收到一个错误,说"异常程序终止"。不过,只有当您将参数传递给"w_icrcom.exe"时,才会发生这种情况。

在我看来,当我执行一个命令时,一切都很好,但当其他程序试图执行相同的命令时,它不起作用,我会得到"异常程序执行"错误。

我在ShellExecute上尝试了同样的设置,调用notepad.exe并传递参数,效果很好。对这个问题有什么合乎逻辑的解释吗?

string test_var = ("j11 hola");
ShellExecute(0, "open", "C:\Users\PC\Desktop\My First\connect\bin\w_icrcom.exe", test_var.c_str(), 0, SW_SHOW);

ShellExecute的倒数第二个参数是"工作目录"。它可能需要设置为cmd提示符中正在工作的当前目录。