使用CreateProcess时从进程返回错误代码

时间:2011-12-15 14:53:53

标签: c++ winapi createprocess

所以我正致力于为某些代码进行自动化测试。命令行中有一个名为“cmdLineProc”的可执行文件。

我用C ++编写我的测试程序(不使用Python,或者我们使用的API,以加快这些测试)。 命令行参数在测试中作为字符串生成,并传递给使用CreateProcess运行cmdLineProc的函数。 这很好用。我可以调用cmdLineProc,它可以工作,测试通过。但只有当没有错误返回时。

在测试时,我需要检查事情是否也会失败。在这些情况下,cmdLineProc返回错误值。

因此,如果我在命令行上运行cmdLineProc并使用会使其失败的参数,我会收到一条消息“Error,Failed:-3”,其中-3是错误代码。 但是当我使用CreateProcess通过C ++测试运行时,我遇到了问题。 CreateProcess失败并返回-1,代码表示失败。它没有说明它失败的原因。 我使用GetExitCodeProcess来获取cmdLineProc的终止状态。

有人知道是否可以使用此方法从cmdLineProc返回错误值?如果不是,是否有人知道我将如何实施这个?

1 个答案:

答案 0 :(得分:0)

GetExitCodeProcess返回运行进程的退出代码。如果在运行程序时看到另一个错误,则创建的进程只是将另一个错误写入stdout。

在这种情况下,您必须解析创建过程的输出。

您可以看到here是如何完成的。