printf-Umleitung in eine MFC Textbox
-
Hallo Allerseits,
folgendes Problem:
ich habe eine Lib, in der irgendwelche Funktionalität steckt unter anderem auch printf-Ausgaben. Diese Lib wurde bis jetzt in eine Dos-Konsolenanwendung gelinkt, wo auch die printf-Ausgaben wieder auftauchten.
Nun soll das ganze unter MFC laufen, funktioniert auch wunderbar - bis auf die printf's.
Hat jemand eine Idee wie man einen printf-Datenstream in eine MFC-Textbox umleiten kann?Gruß und Danke,
u-Control
-
Du müßtest die Standardausgabe in eine Pipe umleiten, die du dann für die textbox wieder einliest.
Ich weiß wie#s für einen Child-Prozess geht, für den "eigenen" Prozeß muß ich erstmal suchen...
ping mich an wenn ich's vergeß.
-
OK, das umsetzen ist einfach:
BOOL SetStdHandle( DWORD nStdHandle, HANDLE hHandle );Jetzt nur noch der Handle
Hier kannst Du im prinzip alles angeben, was man mit CreateFile anlegen oder öffnen kann, für deinen Zweck bietet sich aber eine Pipe an:HANDLE hReadEnd, hWriteEnd; BOOL ok = CreatePipe(&hReadEnd, &hWriteEnd, NULL, 0); SetSdHandle(STD_OUTPUT_HANDLE, hWriteEnd); // Jetzt kanst du mit PeekNamedPipe Infos über die Daten in der Pipe abholen, und mit ReadFile auslesen - z.B. im OnIdle handler, oder Timer-gesteuert