Здравствуйте, e-Inventor, Вы писали:
EI>Здравствуйте
EI>у меня следующая проблема... есть некий класс, у которого есть метод print()
EI>исторически так сложилось, что внутри этого метода используется printf()
EI>который пишет в stdout и менять это нельзя
EI>у меня GUI морда, которая использует этот класс. Мне надо получить
EI>в какую-нибудь переменную вывод этого метода...
Классика жанра, блин
Вас спасет SetStdHandle. В двух словах — делаете pipe через CreateFile, этот пайп привязываете к stdout через SetStdHandle. Заупускаете отдельную нитку, в которой читаете из пайпа (писать в него неявно будут printf-ы). Еще надо не забыть синхронизировать std::cout и компанию — ios::sync_with_stdio().
По теме читать тут:
—
http://support.microsoft.com/kb/q105305/
—
http://www.halcyon.com/~ast/dload/guicon.htm
—
http://msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx
Алексей