Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GUI в С++, на чем лучше создавать GUI 
V
    Опции темы
Пончик
Дата 7.7.2009, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 21.6.2009

Репутация: нет
Всего: нет



Приветик ещё раз! =) пожалуйста не закидывайте помидорами ))))))))) т.к. не спрашивает только тот кто не учится  smile 

Вообщем вопросик! Если писать на чистом МFC то чтобы сделать визуальную программку, аля как все нормальные программки (допустим как тот же калькулятор стандартный), то надо писать на чистом ВИН АПИ? 

Что за стиль такой - dialog based? 

Если писать визуальные программки на ВИН АПИ и на dialog based  то где быстрее работать будет? Где будет "кушать" намного меньше ресурсов и работать под ОС ХР СП 1-3 , Виста (все СП), Вин 7. То есть на современных ОС. 

Сразу прошу не говорить что вопрос тупой =). Сам знаю =). Просто мне до визуальных программок осталось 700 страниц.... а не терпится узнать что да как =) 

Модератор: BC++ - это Borland C++, обычно, имеется в виду версия 3.1. Visual C++ - это MSVC

Это сообщение отредактировал(а) bsa - 10.7.2009, 18:07
PM MAIL   Вверх
mekhanikus
Дата 7.7.2009, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вольноопределяющийся
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 16.6.2008
Где: Спасск-Дальний

Репутация: нет
Всего: 1



Цитата(Пончик @  7.7.2009,  14:22 Найти цитируемый пост)
Если писать на чистом МFC то чтобы сделать визуальную программку, аля как все нормальные программки (допустим как тот же калькулятор стандартный), то надо писать на чистом ВИН АПИ? 


На чем же Вы хотите писать? На чистом WinAPI или используя библиотеки MFC?

Цитата(Пончик @  7.7.2009,  14:22 Найти цитируемый пост)
Что за стиль такой - dialog based?


Это значит, что внешний вид программы (морда) описана в файле ресурсов.
Достаточно запустить макрос DialogBox с нужными параметрами, и винда сама нарисует окно программы со всеми Вашими контролами.
Задача програмиста отловить сообщения от контролов в DialogProc и корректно их отработать.
PM MAIL   Вверх
Пончик
Дата 7.7.2009, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 21.6.2009

Репутация: нет
Всего: нет



Цитата(mekhanikus @  7.7.2009,  14:44 Найти цитируемый пост)
На чем же Вы хотите писать? На чистом WinAPI или используя библиотеки MFC?

Предполагаю что на MFC. Т.к. Апи вроде каждый раз чуток видоизменяется (что то добавляется, что то удаляется, что то изменяется...) то какбы ... MFC более подходит. А где лучше скорость ? Скорость работы приложения?


Цитата(mekhanikus @  7.7.2009,  14:44 Найти цитируемый пост)
Это значит, что внешний вид программы (морда) описана в файле ресурсов.Достаточно запустить макрос DialogBox с нужными параметрами, и винда сама нарисует окно программы со всеми Вашими контролами.Задача програмиста отловить сообщения от контролов в DialogProc и корректно их отработать.

А оно имеет что то общее с .NET ? Или это грубо говоря разновидность МFC? Какие программы быстрее работают? Те что созданы с помощью dialog based или MDI & SDI ? 

Так же очень критичен размер "употребляемой" памяти (оперативки)

Спасибо!!!
PM MAIL   Вверх
mekhanikus
Дата 8.7.2009, 15:53 (ссылка) |    (голосов:6) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вольноопределяющийся
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 16.6.2008
Где: Спасск-Дальний

Репутация: нет
Всего: 1



Программы, созданые с использованием готовых библиотек компонентов(MFS, VCL) имеют больший размер по сравнению с приложениями, создаными на чистом WinAPI.
Это связано с тем, что создатели библиотек стремятся наиболее полно реализовать все особенности компонентов, и все эти навороты перекочевывают в код, даже если никогда не будут использованы.
У меня нет опыта использования MFS, но, например, простейшая програмка, сделанная в BCB6, имеет размер ~450kb.
Тоже самое, сделаное с использованием WinAPI, легче почти в 10 раз!
PM MAIL   Вверх
zim22
Дата 8.7.2009, 16:08 (ссылка) |  (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(mekhanikus @  8.7.2009,  15:53 Найти цитируемый пост)
Тоже самое, сделаное с использованием WinAPI, легче почти в 10 раз!

и в 10 раз дольше писать.  smile 


--------------------
PM MAIL   Вверх
Пончик
Дата 9.7.2009, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 21.6.2009

Репутация: нет
Всего: нет



Ребят! Полностю согласен =) видел программки на Вин Апи ... так там даже до 1кб может "весить".... но сразу напрашивается что... а вот что =) читаю просто книжки. И всегда читаю мол с каждым новым ядром ОС изменяется и Вин Апи. Значит программа написана на Вин Апи для ХР  100% будет работать на ХР, но не факт что на Висте? Я прав? 

То есть грубо говоря кроссплатформенность между ОС Винды имеет МFC & VCL. Какбы... ну больше шансов что всё работать будет правильно =) а это главное! =)

Мммм... а какие программки шустрее работают? Понимаю что это уже что то типа холивара... но какбы интересно. Я понимаю что они все хорошо работают =) но мне очень важно даже если чуть-чуть быстрее.

Кто из них быстрее?

МFC?  MFC - dialog box? MFC - SDI (MDI)? Просто на сколько я вижу в Диалоге и в МДИ или СДИ разные подходы. А значит и по другому писать, а значит и разная скорость выполнения =)

Добавлено через 5 минут и 29 секунд
А ну и ещё =) щас кто то пишет на МFC визуальные приложения?
PM MAIL   Вверх
Andrey44
Дата 9.7.2009, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Цитата(Пончик @  9.7.2009,  08:45 Найти цитируемый пост)
Значит программа написана на Вин Апи для ХР  100% будет работать на ХР, но не факт что на Висте? Я прав? 
Смотря с чем эта программа работает

Цитата(Пончик @  9.7.2009,  08:45 Найти цитируемый пост)
но мне очень важно даже если чуть-чуть быстрее
Написанные без МФЦ быстрее

Цитата(Пончик @  9.7.2009,  08:45 Найти цитируемый пост)
А ну и ещё =) щас кто то пишет на МFC визуальные приложения? 
Я smile Редко но пишу.
Кстати и на работе огромный проект с МФЦ



--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Пончик
Дата 9.7.2009, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 21.6.2009

Репутация: нет
Всего: нет



Цитата(Andrey44 @  9.7.2009,  08:56 Найти цитируемый пост)
Я  Редко но пишу.Кстати и на работе огромный проект с МФЦ

Это только вы так? Или подавляющее большинство? 

Извините что так ... допрашиваюсь =)

Просто хочется учить то что больше всего развивается =)
PM MAIL   Вверх
zim22
Дата 9.7.2009, 18:18 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Пончик @  9.7.2009,  17:12 Найти цитируемый пост)
Просто хочется учить то что больше всего развивается =)

учите язык D. развивается быстро.
***
на Амазон можно предзаказ сделать на книгу The D Programming Language (by Andrei Alexandresku)
я так понял, это как "Язык программирования С++" Страуструпа, только круче smile

Это сообщение отредактировал(а) zim22 - 9.7.2009, 18:30


--------------------
PM MAIL   Вверх
bsa
Дата 10.7.2009, 18:03 (ссылка) |   (голосов:7) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Пончик, MFC забудь. Это пример крайне неудачной библиотеки.
Если тебе хочется быстро писать современные программы не заморачиваясь на кучу мелких деталей, то используй что-нибудь более современное. Например, Qt. Код конечно, будет не самым маленьким, но тебе же не надо пихать программу на дискету.
Пример: чтобы создать окно на WinApi необходимо написать где-то страницу-две малоосмысленного кода (WinApi вообще мало осмысленная библиотека, имхо), а на Qt:
Код
#include <QtGui>
#include <QtGui/QApplication>
int main(int argc, char *argv[])
{
   QApplication app(argc, argv);
   QMainWindow wnd;
   wnd.show();
   return app.exec();
}
Смысл использования подобных библиотек в том, что ты программу пишешь раз в 10-100 быстрее, чем на том же WinApi. Твой код прост и читабелен (через год попытавшись исправить ошибку, ты скажешь себе большое спасибо, что не стал использовать WinApi). Большую часть кода занимает работа с окошками и реакция на действия пользователя. Тут сильно по скорости ничего оптимизировать не надо - вменяемый пользователь все равно не будет жать 20 кнопок в секунду. С другой стороны, у тебя останется прорва времени, чтобы оптимизировать те участки кода, которые этого требуют (например, где требуется работа с большим количеством данных или вычислений).

Кто-то из умных людей сказал, что программа пишется не для машины, а для человека. Машина все равно не понимает того языка, на котором ты пишешь, а ты не можешь писать на языке, который она понимает (я про машинный код - ассемблер тоже машина не понимает без компиляции). Поэтому надо писать так, чтобы понял человек, которому через пол года нужно будет найти в коде ошибку и ее исправить. А понять код, написанный с помощью высокоуровневого API, гораздо проще, чем ежели он написан на низкоуровневом.
PM   Вверх
GoldFinch
Дата 10.7.2009, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



я бы юзал IWebBrowser2 c DHTML
PM MAIL ICQ   Вверх
andrew_121
Дата 10.7.2009, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Да, Qt.
И даже кроссплатформенно!

Цитата(bsa @  10.7.2009,  18:03 Найти цитируемый пост)
но тебе же не надо пихать программу на дискету.

Честно говоря, уже и забыл как дискеты выглядят.



--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Леопольд
Дата 10.7.2009, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



Цитата(Пончик @ 7.7.2009,  14:22)
...
Вообщем вопросик! Если писать на чистом МFC
...

MFC в топку.

wxWidgets, QT4+

Насколько мне известно, это наиболее популярные GUI библиотеки.


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
andrew_121
Дата 10.7.2009, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Леопольд, Наверное наоборот smile 
Qt4, wxWidgets.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Леопольд
Дата 10.7.2009, 19:51 (ссылка)  | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



Цитата(andrew_121 @ 10.7.2009,  19:16)
Леопольд, Наверное наоборот smile 
Qt4, wxWidgets.

Вроде бы без разницы... Это я в интернете прочитал smile
У той и у другой есть преимущества и недостатки.  Сам я только wxWidgets чуть-чуть пользовался. QT код только мельком видел, но не увидел чем бы он выгодно отличался от wxWidgets.

Ах да, вроде бы wxWidgets на Python'e можно юзать (и не только)... И работает под Windows/Linux/Mac/WinCE. А если поднатужиться, то можно свой "порт" написать... smile К тому же wxWidgets open source библиотека, это по моему большое преимущество. Можно подебажить...
А вот про QT я ничего не знаю кроме хвалебных отзывов в общих чертах, да и не удивительно, не копал особо. Интересно было бы почитать чуть-чуть прям здесь.  smile 

Сам сейчас пользуюсь Code::Blocks (а не QTDesigner), вполне приличное IDE написанное на wxWidgets, на мой взгляд мало чем уступает VC 2008 Express, к тому же, кросплатформенно.

Это сообщение отредактировал(а) Леопольд - 10.7.2009, 20:04


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1041 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.