Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > создание консольного окна для GUI-приложения


Автор: dumb 6.5.2008, 03:16
иногда бывает нужна консоль в gui-приложении.

создать ее можно так:
Код

#include <io.h>
#include <stdio.h>
#include <fcntl.h>
...
bool CreateConsole()
{
  FreeConsole();
  if (AllocConsole())
  {
    int err = 0;
    int  hCrt = _open_osfhandle((long)::GetStdHandle(STD_INPUT_HANDLE), O_TEXT);
    *stdin = *(::_fdopen(hCrt, "r"));
    stdin->token = (unsigned char)stdin;
    err |= ::setvbuf(stdin, NULL, _IONBF, 0);
    hCrt = _open_osfhandle((long)::GetStdHandle(STD_OUTPUT_HANDLE), O_TEXT);
    *stdout = *(::_fdopen(hCrt, "w"));
    stdout->token = (unsigned char)stdout;
    err |= ::setvbuf(stdout, NULL, _IONBF, 0);
    *stderr = *(::_fdopen(hCrt, "w"));
    stderr->token = (unsigned char)stderr;
    err |= ::setvbuf(stderr, NULL, _IONBF, 0);
    return true;
  }
  return false;
}


эти пляски с бубном нужны для того, чтобы работали всякие printf'ы, да std::cout'ы.

(с) не мой, я только под билдер "заточил". smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)