gpt4 book ai didi

c++ - 如何从 dll 重定向 STDOUT

转载 作者:搜寻专家 更新时间:2023-10-31 02:24:17 27 4
gpt4 key购买 nike

我有一个通过 std::cout 写入 STDOUT 的 dll 文件。

是否可以将输出从 dll 重定向到使用它的应用程序,而不必在 dll 中创建功能?例如,无论如何都可以“听”它的输出吗?

我正在寻找一个可以跨平台工作的答案。

最佳答案

DLL 不是一个单独的进程,而是一个加载到您的应用程序地址空间中的动态库。这意味着,当 DLL 调用 printf 或任何输出到 stdout/stderr 处理程序时,将继承 stdout/stderr 句柄或您正在运行的应用程序,并且确实会像您将 printf 放入您的应用程序一样运行。如果要捕获从 DLL 调用的输出,则需要从调用 DLL 函数的代理 EXE 运行它。通过这种方式,您可以将 stdout/stderr 管道重定向到您的进程并执行任何您想做的事情。

顺便说一下,在我看来,这是一个完全错误的方法。如果你使用 DLL,你应该从它的函数中得到某种返回码,而不是在标准输出上中继它的输出。

关于c++ - 如何从 dll 重定向 STDOUT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28215277/

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