Russian Qt Forum
Ноябрь 22, 2024, 23:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Принципиальное отличие консольных и GUI- приложений  (Прочитано 18414 раз)
Cyrax
Гость
« : Ноябрь 12, 2006, 18:29 »

В чём принципиальная разница между консольными приложениями и GUI-приложениями ?
Ведь бывают чисто консольные приложения и консольные приложения с графическими окнами, а также GUI-приложения с консольным окном (т.е. они в процессе своей работы открывают консольное окно)...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Сентябрь 02, 2007, 17:04 »

Не встречал консольное приложение с графическими окнами.... Можно пример?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #2 : Сентябрь 03, 2007, 20:56 »

Консольных приложений с форточкой не может быть в принципе. У них разный main(). Но любое из них может из себя вызвать противоположность (консоль -> форточку и наоборот). Но это будут два разных приложения. Несмотря на отличие в интерфейсе (чисто визуальное), это все равно полноценные приложения Win32.
А может быть под консолью имелся в виду сеанс DOS?  Непонимающий
Если интересует разница с точки зрения написания программ - то очень большая. Для GUI надо писать оконные функции (если писать на чистом WinAPI), для консоли этого ничего не надо.
« Последнее редактирование: Сентябрь 03, 2007, 20:59 от Hellraiser » Записан
cutwater
Гость
« Ответ #3 : Сентябрь 20, 2007, 22:23 »

Хе... никто не мешает использовать API функции из main.

Собственно ф-ции main, wmain, _tmain, WinMain, WinMain... - это всего лишь метки, распознаваемые компилятором и не более.
« Последнее редактирование: Сентябрь 20, 2007, 22:40 от cutwater » Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #4 : Сентябрь 22, 2007, 10:44 »

Хе... никто не мешает использовать API функции из main.
Но гуевые апишные функции потребуют хэндл окна и соответствующих библиотек. И консольная программа автоматом станет форточной. Хотя ряд апишных функций можно действительно совершенно спокойно вызывать из main()
Записан
Литий
Гость
« Ответ #5 : Октябрь 15, 2007, 15:30 »

Принципиальное отличие, по-моему, только в одном флажке в заголовке и соответствующей различной обработке при запуске приложения. Консольное приложение из консоли запускается в ней в блокирующем режиме, а при запуске, скажем, из проводника - системой всегда создается консоль. Запуск оконного приложения не блокирует консоль.

Кстати, поэтому невозможно сделать приложение, которое бы гладко поддерживало и консольный, и оконный режим работы. И именно для решения этой проблемы исполняемый файл Visual Studio (msdev.com/devenv.com) имеет формат com (com-файлы обрабатываются по-другому).
Записан
Tonal
Гость
« Ответ #6 : Декабрь 24, 2007, 08:02 »

+1 Именно так. :-)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 23.