Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Принципиальное отличие консольных и GUI- приложений

Ответить
Настройки темы
Принципиальное отличие консольных и GUI- приложений

Аватара для CyraxZ

Ветеран


Сообщения: 784
Благодарности: 11

Профиль | Отправить PM | Цитировать


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

Отправлено: 11:26, 13-11-2006

 

Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Если очень коротко:

1. В организации входа.
int main(...) - для консольных
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE, PSTR, int iShow) - для GUI

2. Плюс, в код консольного приложения по умолчанию включается всякая дребедень по поддержке консоли.

Цитата http://www.gamedev.ru/articles/?id=70033:
Немного терминологии. Называть эту статью введением в Win32 было бы неверно — консольное приложение под Windows такое же полноправное Win32 приложение. Что такое консольное приложение? Ах да - да ты ведь регулярно сталкиваешься с такими программами - например мой любимый файл-менеджер FAR является полноценным консольным Win32 приложением. Точка входа для консольных приложений та же, что и в дос программах на Си - это функция main(). Однозначно разделять оконные приложения и консольные тоже, как мне кажется, было бы не правильно - программа, использующая как точку входа в программу WinMain(), как это ни странно, может и не создавать окно, а даже организовать свою консоль (!) вызовом AllocConsole(), а консольное приложение без проблем может создать окно. Возникает лишь один резонный вопрос: зачем это нужно? Консольные приложения хороши своей самодостаточностью — они идеально подходят для утилит командной строки. О достоинствах оконных приложений я говорить не буду - чуть ниже мы перейдем напрямую к оконным приложениям под Windows.

Архитектурно, эти обе категории различаются стабом (stub) который прилинковывается к твоему откомпилированному коду - в данном контексте под стабом подразумевается некий программный код, выполняемый до (и по выходу) передачи управления в main() или WinMain() (в зависимости от типа приложения). Стабы различны для каждых фирм и часто для разных версий одного и того же продукта - что вполне логично. Например, стаб Борланда не совпадает со стабом от MS, хотя обычно они выполняют одни и те же цели - инициализацию каких-либо внутренних обработчиков и т.п. Исходные тексты стаба (кстати говоря, обычно открыты и исходные тексты рантайм функций - например, вполне реально найти исходный текст знакомых тебе fopen() или printf()) открыты. Например, при инсталяции Visual C++ ты можешь установить и исходные тексты стаба и рантайма (по умолчанию в \CRT\SRC).
Где-то так.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:53, 13-11-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Принципиальное отличие консольных и GUI- приложений

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - Quick Killer - GUI для консольных утилит Лаборатории Касперского Drongo Защита компьютерных систем 8 28-11-2011 14:48
Не работает GUI после выхода другова GUI sashadeg AutoIt 3 15-05-2009 22:03
Службы - Замедленный запуск консольных приложений Serg_kh Microsoft Windows Vista 2 14-06-2008 11:12
Скрытие окна консольных приложений armandi Автоматическая установка Windows 2000/XP/2003 3 16-09-2005 11:04




 
Переход