gpt4 book ai didi

c++ - 从 msvc c++ 执行控制台应用程序

转载 作者:行者123 更新时间:2023-11-30 04:23:59 24 4
gpt4 key购买 nike

Capturing console output from a .NET application (C#)

除了我使用的是 c++ 而不是 c# 之外,我想做与该问题中提出的类似的事情。我有一个经过良好测试的小型 Java 应用程序,它具有一些即将在我的一些 C++ 代码中重写的功能,我想为此使用 boost 单元编写一些单元测试来测试结果是否相同。本质上我想从 c++ 调用这个 java 命令行应用程序。如果可能的话,我宁愿不使用 JNI,因此最好通过 C++ 代码执行其他命令行应用程序。

如何从我的 C++ 应用程序调用控制台应用程序并捕获控制台中生成的所有输出? (我非常希望不必写入中间文件,但如果这是唯一的方法,那就这样吧)

看起来这应该有点直截了当,但我在通过搜索网络查找任何内容时遇到了很多麻烦,因为关键字往往会找到有关其他内容的结果(c# 和从命令行编译是 2 个示例)。如果这个问题是重复的,我一点也不会感到惊讶,但我找不到另一个相同的问题。如果它已经存在,我很乐意在找到另一个链接后关闭这个问题。

最佳答案

这取决于您的目标操作系统,因为标准 C++ 库中没有进程处理功能。例如,在 Windows 上,您将创建两个管道(使用 CreatePipe 函数)来重定向 Java 应用程序的输入和输出,然后使用 CreateProcess 运行 Java 应用程序功能。有一个例子 here .

但我真的建议改用 JNI,这是一种比管道更好的互操作/IPC 形式。如果您走管道路线,您最终会意识到这一点。

关于c++ - 从 msvc c++ 执行控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13052030/

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