Win32 GUI应用程序:如何将stderr消息导入到消息箱中
问题描述:
我试图在Win32 gui应用程序中使用C语言编写的库中的程序。Win32 GUI应用程序:如何将stderr消息导入到消息箱中
此库的作者将错误消息记录到stderr,如下所示。
fprintf(stderr, "Error in %s: %s\n", procname, msg);
如何将邮件打印到标准错误消息框中?
谢谢。
答
如果您有权访问代码,那么最简单的方法就是将sprintf拖放到缓冲区并调用MessageBox() - 而不是对stderr进行某种级别的重定向。
答
您可以使用SetStdHandle选择另一个句柄作为您的过程'stderr
。创建一个管道,让一个线程等待该管道上的信息,并将该管道的写入句柄设置为stderr
。如果你定义了足够大的缓冲区,你可以跳过线程并在每次调用库之后从管道读取数据。
http://stackoverflow.com/questions/7664/windows-c-how-can-i-redirect-stderr-for-calls-to-fprintf可能包含一些有用的信息给你 – 2010-11-05 19:39:04