[英]Win32 GUI C(++) app redirect both stdout and stderr to the same file on disk
[英]Win32 GUI app: how to get stderr messages into messagebox
我正在尝试使用Win32 gui应用程序中用C语言编写的库中的过程。
该库的作者将错误消息记录到stderr,如下所示。
fprintf(stderr, "Error in %s: %s\n", procname, msg);
如何将打印到stderr的消息放入消息框?
谢谢。
您可以使用SetStdHandle选择另一个句柄作为进程的stderr
。 创建一个管道,让一个线程等待该管道的信息,然后将该管道的写句柄设置为stderr
。 如果定义了足够大的缓冲区,则可以在每次调用库之后跳过线程并仅从管道读取数据。
如果您可以访问代码,那么最简单的方法是将sprintf缓存到缓冲区并调用MessageBox()-而不是对stderr进行某种级别的重定向。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.