relocate outputs (cout printf etc.) to custom stream
-
Hallo,
ich möchte gerne versuchen den ganzen output meines programs an einer zenralen stelle zu sammeln und wenn etwas neues ankommt eine funktion oder einen callback oder sowas auszuführen der beispielsweise eine textbox oder sowas aktualisiert.
Die erste Frage wäre wohl wie man etwa bei
mystream << mytext << endlauf den input reagieren und en callback ausführen kann?
C++ 11 ist keine option.
Danke schon einmal im vor-raus.
-
-
Wie funktioniert das mit dem callback also angenommen ich habe das nicht auf ein file sondern auf einen stream umgeleitet und möchte wenn daten geschriben werden methode x ausühren, muss ich dann den operator << überschreiben oder geht das auch anders?
-
Dann brauchst du einen eigenen Streambuffer: http://www.mr-edd.co.uk/blog/beginners_guide_streambuf
-
Pria schrieb:
Wie funktioniert das mit dem callback also angenommen ich habe das nicht auf ein file sondern auf einen stream umgeleitet und möchte wenn daten geschriben werden methode x ausühren, muss ich dann den operator << überschreiben oder geht das auch anders?
Nein, die richtige Stelle, um auf Dateneingang zu reagieren, ist doch logischerweise die Zielstelle. Also wahrscheinlich dein Zielstreambuf.
Wie wolltest du sämtliche operator<< überschreiben? Das geht doch gar nicht.
Das klingt irgendwie nach einem ziemlich umständlichen Weg, um etwas Einfaches zu erreichen. Was soll das am Ende werden, wenn es fertig ist? cout in eine Textbox umleiten?