Здравствуйте, Andrew S, Вы писали:
AS>И все-таки макросы в разы лучше для карты сообщений. Учитывая, что при этом карта сообщения преобразуется макросами в конструкцию вида switch{case}, очевидно, ....
Тезка, Вас нагло обманули по поводу switch{case}
Там все на if сделано...
Т.е. то что следует за Вашим "очевидно" — как раз наоборот....
Здравствуйте, <Аноним>, Вы писали:
А>Весьма поверхностное замечание. Попахивает пальцами. А>И никуда Win32 не уйдет.
Не то, чтобы не уйдёт, а не скоро ещё уйдёт.
Здравствуйте, Alexander Kluev, Вы писали:
AK>Она предназначена показать красоту С++ и убожество win32.
А что насчет эффективности?
Шаблоны это кончна круто и даже удобно. Но насколько оправдано их приминение в данном контексте? В чем глубокий смысл в раздувании кода? Когда размер бинарника несколько сотен килобайт, это конечно не имеет значения. Но если мне нужен сверхтонкое приложение я бы взял WTL
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Здравствуйте, AndrewJD, Вы писали:
AJD>А что насчет эффективности? AJD>Шаблоны это кончна круто и даже удобно. Но насколько оправдано их приминение в данном контексте? В чем глубокий смысл в раздувании кода? Когда размер бинарника несколько сотен килобайт, это конечно не имеет значения. Но если мне нужен сверхтонкое приложение я бы взял WTL
А WTL что без шаблонов сделан? Возьмите лучше голый АПИ. (и голый masm) и будет вам сверхтонко.
K>А WTL что без шаблонов сделан? Возьмите лучше голый АПИ. (и голый masm) и будет вам сверхтонко.
Не будем впадать в крайности... WTL сделан на шаблонах, но там для каждого обработчика сообщений не создается по классу и конструктору. Их ведь ооочень много может быть.
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Здравствуйте, AndrewJD, Вы писали:
AJD>Не будем впадать в крайности... WTL сделан на шаблонах, но там для каждого обработчика сообщений не создается по классу и конструктору. Их ведь ооочень много может быть.
Странные у вас запросы. Нужно сверхтонкое приложение и ооочень много обработчиков. Когда ооочень много обработчиков обычно забивают на сверхтонкость и более уделяют внимание внятности архитектуры проекта.
AJD>>Не будем впадать в крайности... WTL сделан на шаблонах, но там для каждого обработчика сообщений не создается по классу и конструктору. Их ведь ооочень много может быть.
K>Странные у вас запросы. Нужно сверхтонкое приложение и ооочень много обработчиков. Когда ооочень много обработчиков обычно забивают на сверхтонкость и более уделяют внимание внятности архитектуры проекта.
не объекты которые использованы здесь не сказываются на производительности, это все миф.
А вот обработка сообщений в стиле:
if ( message = ok )
{
BOOL handled = FALSE;
LRESULT r = process_ok_(message, lparam,rparam,handled);
if ( handled ) return r;
}
действительно очень "мощно"
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
dad>не объекты которые использованы здесь не сказываются на производительности, это все миф.
dad>А вот обработка сообщений в стиле:
skip
dad>действительно очень "мощно"
Я за производительность не переживаю — она здесь будет вполне приличная. Я за размер бинарника и скорость компиляции
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Здравствуйте, AndrewJD, Вы писали:
AJD>Я за производительность не переживаю — она здесь будет вполне приличная. Я за размер бинарника и скорость компиляции
Как раз с WTL и будет маленькая скорость компиляции и распухание бинарника. Знаем, проходили. Там же все в шаблонах и через псевдовиртуальные функции сделано. Вместо десяти маленьких классов производных от одного большого, в WTL получится десять больших.
Вообще микровсосовские поделия в области библиотек классов вызывают только огорчения и ничего больше. Чтобы написать нормальную оконную библиотеку под Win надо полностью закрывать оконный WinApi. Чтобы из библиотеки от него наружу ничего из него не торчало и даже не пахло.
Здравствуйте, Alexander Kluev, Вы писали:
AK>Small Windows Library – это экспериментальная оконная библиотека вокруг win32. Особой практической ценности она не представляет ввиду неизбежности ухода win32 со сцены, но тем не менее иллюстрирует еще один способ организации оконной библиотеки. Она предназначена показать красоту С++ и убожество win32.
По статье. "Красота C++" — это, похоже, моменты типа msg.begin_paint(). Рискну выразить мнение, что это не красота языка, а стиль "как не надо проектировать классы". Достаточно прочитать по-русски: "Сообщение! Начни отрисовку!". Так и появляются классы типа "таймер со встроенной отрисовкой часов и поддержкой скинов". Конечно, в рамках подхода это можно было бы сделать несколько поизящнее, организовав синтаксис типа msg.hdc.begin_paint(), но само по себе весьма показательно.
Применение шаблонов для сообщений считаю неоправданным. Собственно, нужно оно как раз для того, чтобы писать "красоты" типа упомянутой в предыдущем абзаце, в остальном это совершенно излишне.