Консольное окно из GUI приложения

Тема в разделе "WASM.WIN32", создана пользователем redgool, 25 окт 2007.

  1. redgool

    redgool New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2007
    Сообщения:
    10
    Здравствуйте, подскажите пожалуйста.
    Из своего графического приложения вызываю консоль так:
    Код (Text):
    1. void CreateConsole()
    2. {
    3.     if(hOut == NULL)
    4.     {
    5.         AllocConsole();
    6.         hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    7.     }
    8. }
    9.  
    10. void PrintOnConsole(char * cTxt)
    11. {
    12.     DWORD dwNumberOfCharsWritten;
    13.     WriteConsole(hOut, cTxt, lstrlen(cTxt), &dwNumberOfCharsWritten, NULL);
    14. }
    Скажите можно ли создавать у одного GUI приложения несколько консолей, просто я слышал, что то ли нельзя, толи это неправильно...
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    У приложения может быть максимум 1 консоль. Повторный вызов AllocConsole вернёт ошибку. Кстати, об этом предельно ясно написано в msdn.

    Ограничение это можно обойти, например, запустив новый процесс со своей консолью, но нужен ли такой изврат...
     
  3. redgool

    redgool New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2007
    Сообщения:
    10
    Не так я и спрашиваю как можно сделать (обмануть) так чтобы у приложения было две консоли?
    Наверняка есть способы...
     
  4. redgool

    redgool New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2007
    Сообщения:
    10
    Может быть есть другой способ вызвать консоль...
     
  5. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Если обмануть систему, то вторая консоль откроется внутри первой.
     
  6. Mental_Mirror

    Mental_Mirror New Member

    Публикаций:
    0
    Регистрация:
    7 май 2007
    Сообщения:
    431
    redgool
    Есть тока надо копать в сторону - "ConsoleWindowClass", попробуй вызвать CreateWindow с этим классом.
     
  7. redgool

    redgool New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2007
    Сообщения:
    10
    А можно по подробнее что за задумка у тебя Mental_Mirror?
     
  8. redgool

    redgool New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2007
    Сообщения:
    10
    А знаете, я тут подумал, первую можно создать, а вторую: запустить CMD, найти окно, и вывести туда, как думаете на счёт такого способа?
     
  9. Mental_Mirror

    Mental_Mirror New Member

    Публикаций:
    0
    Регистрация:
    7 май 2007
    Сообщения:
    431
    redgool
    Куда подробнее то? Окна умеешь создавать? Если нет, то для этого есть функция CreateWindow, ей передается класс, точнее строка, которая соответстует классу, ну вот и передай "ConsoleWindowClass". Ну не факт, что получится, я сам то не пробывал =)
     
  10. redgool

    redgool New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2007
    Сообщения:
    10
    Ну и что сделал..., как обычное окно ни чем от него не отличается...
     
  11. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia