I'm looking for a way to show a "DOS" output in a Roguelike fashion, ie. it loks like you have a DOS window filled with characters (the level) which can change or move when the user pushes buttons, clicks with the mouse etc.
In a normal DOS window (say the output from a classic c++ program or .bat) you can only 'write more text' and you have to redraw the whole level if anything changes which is cumbersome and causes artefacts (the updated level slowly scrolls in).
I know I can use say Qt or SDL and draw 2D tiles with characters to overcome this problem but it seems complicated for what I want to do, is there an easy way (say a C++ library) that will let me draw characters anywhere in the/a 'DOS' window?
Thanks!
[EDIT] Thanks, I'll check out all your suggestions, +1 for all!
[EDIT]PDCurses won, a tutorial on how to use it can be found here (it says NCurses but it works perfectly well for a simple Hello world example): http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/
When Rogue was written, it used the curses screen control library.
You can get various implementations of it for Windows. Some translate the curses calls into ordinary Windows console calls:
Others make a true GUI window, and then draw the enhanced features like bold and underline in a "faked" terminal (like your idea of using Qt or SDL to draw the tiles):
If you want to tie yourself directly to Microsoft's rarely-used console API functions, you can do that. But if nostalgia is your goal with pursuing such a UI in this day and age, then learning curses would make you cross-platform and let you understand things like the Rogue source code better.
And if kicking into actual DOS emulation is your goal (as per DOSBox), there was another popular option: directly accessing the screen memory. You could peek and poke around...write a 65 at the right place and an "A" shows up.
Then there was ANSI.SYS, which was used on many a bulletin board system back in the day...but is similarly obsolete.