从C ++应用程序运行系统命令与命令行不同

时间:2014-01-31 07:37:58

标签: c++ command-line

我想从C ++应用程序执行命令。我是这样做的:

system("sendEmail.exe -f someone@somewhere.com -t ...");

这适用于Windows Server 2008以及其他系统。但是,它在我的新服务器(Windows Server 2012)上的工作方式不同,它似乎调用了命令但从未完成。如果我在命令窗口中输入完全相同的命令,它就可以正常工作。

我尝试使用

system("cmd.exe /C \"sendEmail.exe -f someone@somewhere.com -t ...\""); 

但这没有帮助。

任何人都知道从C ++调用系统和在cmd中运行之间的区别是什么?

修改:此问题不再可再现。感谢您的快速答案

1 个答案:

答案 0 :(得分:3)

尝试

system("cmd.exe");

没有参数 这只会打开一个 cmd 窗口并保持打开状态。在该窗口中,您可以调用 sendMail.exe ,看看发生了什么。也许只有不同的路径设置或权限问题。

作为替代方案,您可以使用Windows Api函数CreateProcess