Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用CreateProcess时从进程返回错误代码_C++_Winapi_Createprocess - Fatal编程技术网

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

C++ 使用CreateProcess时从进程返回错误代码,c++,winapi,createprocess,C++,Winapi,Createprocess,所以我正在为一些代码做一个自动测试。从名为“cmdLineProc”的命令行运行一个可执行文件 我用C++做测试程序(不使用Python或者COS有一个API,我们使用这些API加速测试)。 命令行参数在测试中作为字符串生成,并传递给使用CreateProcess运行cmdLineProc的函数。。 这个很好用。我可以调用cmdLineProc,它工作正常,测试通过。但只有在没有返回错误时 当测试时,我需要检查obv是否在正常情况下出现故障。在这些情况下,cmdLineProc返回一个错误值 因

所以我正在为一些代码做一个自动测试。从名为“cmdLineProc”的命令行运行一个可执行文件

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

当测试时,我需要检查obv是否在正常情况下出现故障。在这些情况下,cmdLineProc返回一个错误值

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


有人知道是否可以从使用此方法返回的cmdLineProc获取错误值吗?如果没有人知道我该如何实现它?

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

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


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

GetLastError对我不起作用。它只返回0。这是我第一次使用这个东西,但是我试着把GetLastError()放在代码中的几个不同的地方,但是每次它都返回0.Sory。我认为
CreateProcess
失败,但如果它返回非零值(-1),则意味着成功。看到您应该解析
cmdLineProc
写入stdou的内容,我不明白为什么
cmdLineProc
不返回
-3
而不是
-1
CreateProcess的返回类型是BOOL。这不可能是-1,在某个地方有一个更大的问题。邮政编码,好的。为帮助孩子们干杯。我试试看。谢谢