Russian Qt Forum

Компиляторы и платформы => Windows => Тема начата: Cyrax от Ноябрь 12, 2006, 18:29



Название: Принципиальное отличие консольных и GUI- приложений
Отправлено: Cyrax от Ноябрь 12, 2006, 18:29
В чём принципиальная разница между консольными приложениями и GUI-приложениями ?
Ведь бывают чисто консольные приложения и консольные приложения с графическими окнами, а также GUI-приложения с консольным окном (т.е. они в процессе своей работы открывают консольное окно)...


Название: Re: Принципиальное отличие консольных и GUI- приложений
Отправлено: Пантер от Сентябрь 02, 2007, 17:04
Не встречал консольное приложение с графическими окнами.... Можно пример?


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


Название: Re: Принципиальное отличие консольных и GUI- приложений
Отправлено: cutwater от Сентябрь 20, 2007, 22:23
Хе... никто не мешает использовать API функции из main.

Собственно ф-ции main, wmain, _tmain, WinMain, WinMain... - это всего лишь метки, распознаваемые компилятором и не более.


Название: Re: Принципиальное отличие консольных и GUI- приложений
Отправлено: Hellraiser от Сентябрь 22, 2007, 10:44
Хе... никто не мешает использовать API функции из main.
Но гуевые апишные функции потребуют хэндл окна и соответствующих библиотек. И консольная программа автоматом станет форточной. Хотя ряд апишных функций можно действительно совершенно спокойно вызывать из main()


Название: Re: Принципиальное отличие консольных и GUI- приложений
Отправлено: Литий от Октябрь 15, 2007, 15:30
Принципиальное отличие, по-моему, только в одном флажке в заголовке и соответствующей различной обработке при запуске приложения. Консольное приложение из консоли запускается в ней в блокирующем режиме, а при запуске, скажем, из проводника - системой всегда создается консоль. Запуск оконного приложения не блокирует консоль.

Кстати, поэтому невозможно сделать приложение, которое бы гладко поддерживало и консольный, и оконный режим работы. И именно для решения этой проблемы исполняемый файл Visual Studio (msdev.com/devenv.com) имеет формат com (com-файлы обрабатываются по-другому).


Название: Re: Принципиальное отличие консольных и GUI- приложений
Отправлено: Tonal от Декабрь 24, 2007, 08:02
+1 Именно так. :-)