Win32 GUI приложение: как получать сообщения stderr в ящик сообщений - PullRequest
0 голосов
/ 05 ноября 2010

Я пытаюсь использовать процедуры из библиотеки, написанной на языке C, в графическом приложении Win32.

Автор этой библиотеки записывает сообщения об ошибках в stderr, как показано ниже.

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

Как я могу получить сообщения, напечатанные на stderr, в ящик для сообщений?

Спасибо.

Ответы [ 2 ]

1 голос
/ 07 ноября 2010

Вы можете использовать SetStdHandle , чтобы выбрать другой дескриптор в качестве вашего процесса 'stderr. Создайте канал, получите поток, ожидающий информацию об этом канале, и установите дескриптор записи этого канала как stderr. Если вы определили достаточно большой буфер, вы можете пропустить поток и просто читать данные из канала после каждого вызова библиотеки.

0 голосов
/ 05 ноября 2010

Если у вас есть доступ к коду, то самый простой способ - просто запустить sprintf в буфере и вызвать MessageBox (), а не выполнять какое-либо перенаправление уровня stderr.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...