2010-11-05 58 views
0

我试图在Win32 gui应用程序中使用C语言编写的库中的程序。Win32 GUI应用程序:如何将stderr消息导入到消息箱中

此库的作者将错误消息记录到stderr,如下所示。

fprintf(stderr, "Error in %s: %s\n", procname, msg); 

如何将邮件打印到标准错误消息框中?

谢谢。

+3

http://stackoverflow.com/questions/7664/windows-c-how-can-i-redirect-stderr-for-calls-to-fprintf可能包含一些有用的信息给你 – 2010-11-05 19:39:04

回答

0

如果您有权访问代码,那么最简单的方法就是将sprintf拖放到缓冲区并调用MessageBox() - 而不是对stderr进行某种级别的重定向。

1

您可以使用SetStdHandle选择另一个句柄作为您的过程'stderr。创建一个管道,让一个线程等待该管道上的信息,并将该管道的写入句柄设置为stderr。如果你定义了足够大的缓冲区,你可以跳过线程并在每次调用库之后从管道读取数据。