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

时间:2015-03-05 13:41:19

标签: c++ windows shellexecute

我正在运行此命令

  

w_icrcom.exe j11 hola

从命令提示符运行正常,exe正在使用参数运行。

但是当我从C ++程序中做同样的事情时,w_icrcom.exe表现得与众不同。我收到一条错误消息,指出"程序异常终止"。这只会在您将参数传递给' w_icrcom.exe时发生。

在我看来,当我执行一个命令时一切都很好,但是当其他程序尝试执行相同的命令时,它不起作用而且我得到了#34;异常程序执行"错误。

我在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);

1 个答案:

答案 0 :(得分:0)

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