Umleiten von stdout an ein edit-control (Win32)

Habe ich eine einfache Win32-GUI-app, die hat ein edit-Steuerelement in das Hauptfenster. Wenn ich Schreibe:

printf("Hello world!\n");

Ich würde gerne den text in das Steuerelement anstelle der Konsole. Wie?

Update: Die app ist nur ein einfaches Fenster mit edit-Steuerelement, und ich kann es kompilieren mit oder ohne Anzeige der Konsole (gcc -mwindows). Manchmal habe ich eine externe Funktion aufrufen, die möglicherweise printf() etwas - und ich fangen möchte, dass etwas und zeigen Sie Sie in das edit-Steuerelement. So weit, SetStdHandle() zu sein scheint, am nächsten an das, was ich versuche zu erreichen, aber ich kann nicht damit es funktioniert, aber...


Update 2:
Bitte, kann mir jemand sagen warum das nicht funktioniert und wie man es beheben?

HANDLE hRead, hWrite;
CreatePipe(&hRead, &hWrite, NULL, 0);

SetStdHandle(STD_OUTPUT_HANDLE, hWrite);

printf("Hello world!\n");

CloseHandle(hWrite); //Why is this needed?

DWORD dwRead;
BOOL bSuccess;
CHAR chBuf[4096];
bSuccess = ReadFile(hRead, chBuf, 4096, &dwRead, NULL); //This reads nothing :(

Auch, das es noch gibt "Hello world" auf der Konsole, ich erwartet, dass es nicht zu..?

InformationsquelleAutor Tero Jokinen | 2009-11-07
Schreibe einen Kommentar