Konsolenausgabe in WinAPI-Progs???
-
Hi Leudde!
Sacht ma, es ist doch besitmmt irgendwie möglich, anweisungen wie printf oder den cout-stream in WinAPI-Programmen zu benutzen, oder??? Also das man über das WinAPI-Programm mit eigenen Fenstern etc. auch ein DOS-Fenster öffnen kann und dort via printf und scanf sachen ein- und ausgeben kann??? Wie geht das??Gruss, code_pilot
-
Probiers mal damit (geht zumindest für printf und scanf):
void InitConsole () { int hCrt; FILE * hf; struct _COORD bufferSize = { 80, 1000 }; AllocConsole (); SetConsoleScreenBufferSize (GetStdHandle (STD_OUTPUT_HANDLE), bufferSize); hCrt = _open_osfhandle ((long) GetStdHandle (STD_OUTPUT_HANDLE), _O_TEXT); hf = _fdopen (hCrt, "w"); * stdout = * hf; hCrt = _open_osfhandle ((long) GetStdHandle (STD_ERROR_HANDLE), _O_TEXT); hf = _fdopen (hCrt, "w"); * stderr = * hf; hCrt = _open_osfhandle ((long) GetStdHandle (STD_INPUT_HANDLE), _O_TEXT); hf = _fdopen (hCrt, "r"); * stdin = * hf; }
-
Thx, aber der Compiler (C++Builder 4) sacht:
undefined symbol: _O_TEXT
welche header brauche ich
-
Sorry, hatte ich vergessen:
#include <windows.h> #include <stdio.h> #include <io.h> #include <fcntl.h>
-
Jo danke, ein Fenster wird nun angezeigt, aber wenn ich printf aufrufe passiert nix ...
code_pilot
-
Mit VC++ gehts. Beim Borland scheint sich die stdio anders zu verhalten. Dazu müßte man die Borland-Doku durchstöbern. Ich habe leider nur die Kommandozeilenversion bcc 5.5 (Ohne Doku).
-
der blöde Borland sacht, es gibt kein _O_TEXT, wohl aber O_TEXT_ und dass funzt dann auch wieder nicht. Bei O_TEXT sagt er nix, aber dann sieht man auch nix.