gpt4 book ai didi

c++ - 如何将退出代码从 Ada 进程返回到调用 Windows 进程?

转载 作者:可可西里 更新时间:2023-11-01 11:26:04 25 4
gpt4 key购买 nike

我需要将 Windows C++ 程序连接到旧版 GNAT Ada 程序。 Windows 程序将遗留的 Ada 程序生成为一个单独的进程,然后等待它返回。

我可以将 Ada 主程序编写为返回整数的函数。我可以在 Window 中看到,我可以通过调用 WaitForSingleObject() 等待进程完成,并且我可以调用 GetExitCodeProcess() - 但这些似乎都不是告诉我 Ada 程序返回了什么——我说得对吗?

返回值似乎是调用本身是否返回错误,而不是被调用的进程。

我应该查看进程信息句柄还是类似的东西?

谁能告诉我如何将 Ada 程序的返回值返回给调用 Windows 程序?

最佳答案

我假设您无权访问遗留应用程序的源代码,或者您不希望进行任何更改。

如果遗留应用程序正在将结果写入标准输出(STDOUT),您可以重定向 Ada 程序的 STDOUTSTDERR到管道。

稍后您可以从管道中提取信息并在您的 C++ 程序中对其进行解析。

您可以在此处找到有关如何将 STDOUT 重定向到 Windows 中的管道的示例:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms682499%28v=vs.85%29.aspx

另一种方法是将输出重定向到一个临时文件,并在您检测到该过程已完成后解析该文件。

关于c++ - 如何将退出代码从 Ada 进程返回到调用 Windows 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35726184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com