Re[9]: Связка C/C++ и WinAPI - ещё актуальна?
От: Shmj Ниоткуда  
Дата: 23.11.19 01:06
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

S>>Через API, но не используя стандартную оконную систему а отрисовывая все с нуля.

ЕМ>Чем это отличается от owner/custom draw?

Тем что потратили тысячи человеко-часов и сотни тыс. у.е., чтобы все было удобно и работало.
Re[9]: Связка C/C++ и WinAPI - ещё актуальна?
От: AlexGin Беларусь  
Дата: 23.11.19 02:55
Оценка: +2
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Чем это отличается от owner/custom draw?


Маленький совет:
1) Сделай пару простейших оконных примеров на Qt и WPF. Таких, чтобы в основном окне было еще несколько контролов
(простых оконных объектов — напимер combo-box; edit-box; list-box).
2) Позапускай эти незамысловатые примеры и просмотри их и их внутренние окошечки (вышеуказанные контролы)
программкой SPYXX.EXE (раньше эта графическая утилита поставлялась со студией). Думаю, что найти её несложно.
3) Сравни с тем, что ты бы увидел, если бы сделал вышеуказанные примеры на WinAPI и MFC.

...проанализируй полученный результат...
Отредактировано 23.11.2019 2:57 AlexGin . Предыдущая версия .
Re[10]: Связка C/C++ и WinAPI - ещё актуальна?
От: AlexGin Беларусь  
Дата: 23.11.19 03:01
Оценка: +2
Здравствуйте, Shmj, Вы писали:

S>Тем что потратили тысячи человеко-часов и сотни тыс. у.е., чтобы все было удобно и работало.

+100500
И чтобы пляски с бубнами при разработках на MFC и WinAPI были незнакомы молодому поколению разработчиков ПО
Re[11]: Связка C/C++ и WinAPI - ещё актуальна?
От: AlexGin Беларусь  
Дата: 23.11.19 03:12
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Да хоть через HWND/DC, хоть через desktop DC, хоть через OpenGL — это все WinAPI.


Как тогда работают графические утилиты на Unix-подобных OS?
А ведь там никакого WinAPI нет и никогда не было...

ЕМ>Десятки элементов — это "сложные окна"? Я всегда думал, что сложные начинаются с нескольких сотен (с которыми GDI вполне себе справляется). А какие революционные технологии отрисовки и/или обрезки применены в Qt, которых нет в GDI?


ИМХО здесь всё уже упрётся не в возможности техники, а в восприятие этой картинки человеком (пользователем).

P.S. Лично я вижу, что в последние годы разработчики стараются наоборот — упростить UI.
И если лет 20 назад окно с нагромождением десятков контролов было вполне обычным делом, то теперь это выглядит нонсенсом.
Re: Связка C/C++ и WinAPI - ещё актуальна?
От: __kot2  
Дата: 23.11.19 04:17
Оценка: +1
Здравствуйте, rude-531, Вы писали:
R5>PS: вопрос в первую очередь касается работы в РФ (как в Москве, так и в регионах), но было бы интересно услышать и о том, что у них там "в заграницах"...
ух, кошмар. это было неактуально уже когда я универ заончил 15 лет назад
Re[11]: Связка C/C++ и WinAPI - ещё актуальна?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 23.11.19 06:50
Оценка: +2
Здравствуйте, CreatorCray, Вы писали:

N>>GDI может быть невероятно медленным на сложных окнах, потому что будет отрисовывать десятки контролов.

CC>GDI точно так же HW accelerated.
CC>И если не надо рисовать всякие прозрачности то GDI фигачит весьма достойно.

Совсем не также. GDI со своим BitBlt даже картинку нормально показать не может, не говоря уже о выводе видео. Я лично в системе видеонаблюдения делал многооконный интерфейс и простые контролы (в том числе с полупрозрачностью и градиентами) сначала на DirectDraw, потом на Direct3D, а потом Qt стала LGPL и мы весть этот кошмар и диалоги на WinAPI переписали на Qt. Тормозов не прибавилось, зато код стал гибким и компактным. У меня большой опыт использования WinAPI с ownerdraw в том числе: делали кастомные listviw и treeview, например.
Можно посмотреть на страндартные примеры интерфейса в Qt, посмотреть что он может из коробки и даже вопросов не возникнет после этого: также быстр GDI или нет.
Re[11]: Связка C/C++ и WinAPI - ещё актуальна?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 23.11.19 06:55
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

N>>У этих контролов нет HWND. Qt может отрисовывать их через OpenGL, задавая любое поведение.

ЕМ>Да хоть через HWND/DC, хоть через desktop DC, хоть через OpenGL — это все WinAPI.

Ну, нет конечно. Где-то там глубоко одно окно создано через WinAPI, а остальные контролы уже не имеют своего DC, HWND и рисуются не в 2D, а в 3D.

N>>GDI может быть невероятно медленным на сложных окнах, потому что будет отрисовывать десятки контролов.

ЕМ>Десятки элементов — это "сложные окна"? Я всегда думал, что сложные начинаются с нескольких сотен (с которыми GDI вполне себе справляется). А какие революционные технологии отрисовки и/или обрезки применены в Qt, которых нет в GDI?

3D vs 2D. Попробуй вывести в GDI картинку в несколько мегапикселей и на мышку сделать зум. И на Qt тоже самое. Когда увидишь разницу, все вопросы отпадут.

P.S. И будь мужиком, поменяй уже фон на кнопке!
Re[10]: Связка C/C++ и WinAPI - ещё актуальна?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.11.19 09:35
Оценка: :)
Здравствуйте, AlexGin, Вы писали:

AG>1) Сделай пару простейших оконных примеров на Qt и WPF. Таких, чтобы в основном окне было еще несколько контролов

AG>(простых оконных объектов — напимер combo-box; edit-box; list-box).
AG>2) Позапускай эти незамысловатые примеры и просмотри их и их внутренние окошечки (вышеуказанные контролы)
AG>программкой SPYXX.EXE (раньше эта графическая утилита поставлялась со студией). Думаю, что найти её несложно.
AG>3) Сравни с тем, что ты бы увидел, если бы сделал вышеуказанные примеры на WinAPI и MFC.

Зачем мне все это делать/пробовать? Я окна с несколькими десятками подобных элементов делал на голом WinAPI еще в конце 90-х, и перерисовывались они по десятку раз в секунду и чаще, ибо обслуживали звуковые потоки в реальном времени. И много других подобных программ регулярно использовал, когда Qt, WPF даже в проекте не было, а DirectDraw, OpenGL и прочее считалось экзотикой. И все прекрасно крутилось на самом убогом тогдашнем железе, можно было зацепить окно мышкой, и елозить им по экрану в режиме полной перерисовки, а не только рамки.

А вот когда попробовал делать то же самое на MFC — сразу заметил сильные тормоза даже на простых конфигурациях. Вот там приходилось извращаться, чтобы не затыкалось совсем уж неприлично.
Re[12]: Связка C/C++ и WinAPI - ещё актуальна?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.11.19 09:38
Оценка:
Здравствуйте, AlexGin, Вы писали:

ЕМ>>Да хоть через HWND/DC, хоть через desktop DC, хоть через OpenGL — это все WinAPI.


AG>Как тогда работают графические утилиты на Unix-подобных OS?

AG>А ведь там никакого WinAPI нет и никогда не было...

Ну дык, в Unix-подобных свои API. Я к тому, что под виндой все новомодные GUI в итоге все равно работают через WinAPI.

AG>P.S. Лично я вижу, что в последние годы разработчики стараются наоборот — упростить UI.

AG>И если лет 20 назад окно с нагромождением десятков контролов было вполне обычным делом, то теперь это выглядит нонсенсом.

Все зависит от задач, выполняемых софтом. Запоминать десятки клавиатурных комбинаций и/или жестов мышью удобно далеко не всем.
Re[12]: Связка C/C++ и WinAPI - ещё актуальна?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.11.19 09:41
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Ну, нет конечно. Где-то там глубоко одно окно создано через WinAPI, а остальные контролы уже не имеют своего DC, HWND и рисуются не в 2D, а в 3D.


И куда при этом девается WinAPI? Или Вы относите к WinAPI только функции, принимающие HWND/HDC?

N>Попробуй вывести в GDI картинку в несколько мегапикселей и на мышку сделать зум. И на Qt тоже самое.


С каких пор эта операция часто выполняемой, и оттого особо критичной к быстродействию?

N>P.S. И будь мужиком, поменяй уже фон на кнопке!


Я давным-давно сделал рамку, о чем тогда же отписался.
Re[12]: Связка C/C++ и WinAPI - ещё актуальна?
От: CreatorCray  
Дата: 23.11.19 11:01
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>GDI со своим BitBlt даже картинку нормально показать не может

Показать то он как раз может и весьма быстро, но тебе ж надо не "показать" а сделать scale с фильтрацией.
GDI, в отличие от GDI+, как раз весьма быстрый.

N> не говоря уже о выводе видео.

Для этого давно есть оверлеи. Гонять каждый кадр через память банально тупо дорого.

N>Можно посмотреть на страндартные примеры интерфейса в Qt, посмотреть что он может из коробки и даже вопросов не возникнет после этого: также быстр GDI или нет.

У меня есть свой UI написанный для финансовых целей, где 99% всего рисуется через TextOutW и BitBlt + в паре мест есть Ellipse, MoveToEx/LineTo.
И perf замеров я в процессе этой развлекухи делал дофига, даже по результатам местных срачей был проект сравнения с Direct2D, который для одной и той же сцены по времени отрисовки заметно слил.

N>контролы (в том числе с полупрозрачностью и градиентами)

Прозрачностей, градиентов и видео там нет, да. Одни скучные финансы, просто плотненко кучи цифр и графиков.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[11]: Связка C/C++ и WinAPI - ещё актуальна?
От: AlexGin Беларусь  
Дата: 23.11.19 11:27
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Зачем мне все это делать/пробовать? Я окна с несколькими десятками подобных элементов делал на голом WinAPI еще в конце 90-х, и перерисовывались они по десятку раз в секунду и чаще, ибо обслуживали звуковые потоки в реальном времени.


Я тоже начинал оконную разработку с WinAPI в 1997-98 годах.
С тех пор капитально распробовал MFC, BorlandCBuilder, WinForms, WPF, Qt.
Могу только сказать, что из всего данного ассортимента, WinAPI окажется наиболее убогим
Я в последние три года остановил свой выбор на WPF (для C# .NET проектов) и Qt C++ (native applications).

Насчёт перерисовывания окон — для чего нужна такая бешенная скорость перерисовки?
Глаз человека это не отследит всё равно. ИМХО даже не каждый монитор корректно воспроизведёт. Так для кого это?

ЕМ>И много других подобных программ регулярно использовал, когда Qt, WPF даже в проекте не было, а DirectDraw, OpenGL и прочее считалось экзотикой. И все прекрасно крутилось на самом убогом тогдашнем железе, можно было зацепить окно мышкой, и елозить им по экрану в режиме полной перерисовки, а не только рамки.


Насчёт Qt: оно появилось на рубеже 1980-х и 90-х:

https://wiki.qt.io/Qt_History

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

Вот WinForms и WPF — соглашусь, тогда не было.

ЕМ>А вот когда попробовал делать то же самое на MFC — сразу заметил сильные тормоза даже на простых конфигурациях. Вот там приходилось извращаться, чтобы не затыкалось совсем уж неприлично.


P.S. Зная WinAPI и MFC — разработчик софта просто должен распробовать Qt
Я начал заниматься на Qt более трёх лет назад, тогда для меня раскрылись новые интересные аспекты.
Отредактировано 23.11.2019 13:25 AlexGin . Предыдущая версия .
Re[2]: Связка C/C++ и WinAPI - ещё актуальна?
От: sergey2b ЮАР  
Дата: 23.11.19 16:12
Оценка:
Здравствуйте, __kot2, Вы писали:

__>Здравствуйте, rude-531, Вы писали:

R5>>PS: вопрос в первую очередь касается работы в РФ (как в Москве, так и в регионах), но было бы интересно услышать и о том, что у них там "в заграницах"...
__>ух, кошмар. это было неактуально уже когда я универ заончил 15 лет назад

а что сейчас по вашему сейчас актуально в США (ML скажем 10 вакансий в неделю в MA, зачастую меньше, с учетом что здесь несколько топ университетов это не о чем)
Re[3]: Связка C/C++ и WinAPI - ещё актуальна?
От: __kot2  
Дата: 23.11.19 17:14
Оценка: 10 (3) +1 -1 :))
Здравствуйте, sergey2b, Вы писали:
S>а что сейчас по вашему сейчас актуально в США (ML скажем 10 вакансий в неделю в MA, зачастую меньше, с учетом что здесь несколько топ университетов это не о чем)
русских часто берут на С++, потому что больше никто его не знает
тут я бы сказал скорее нужен правильный менталитет, чем знание каких-то фреймворков. русские известны тем, что любят ходить и громко ругаться, в общем-то вполне по делу, типа
— почему этот дебил Шринивас опять поломал продакшен? кто этому мудаку вообще дал доступ?
а это дико тут.

а если уметь общаться тактично, есть опыт проектирования с нуля на нескольких языках, опыт контроля качества и так далее, знание чего-то более современного типа питона, ml, может быть опыт работы в каких-то областях типа секьюрити, то, в общем, работы полно
ну и по резюме хорошо, чтобы было видно чем человек вообще хочет по жизни заниматься
Отредактировано 23.11.2019 17:36 __kot2 . Предыдущая версия .
Re[4]: Связка C/C++ и WinAPI - ещё актуальна?
От: sergey2b ЮАР  
Дата: 23.11.19 17:27
Оценка:
Здравствуйте, __kot2, Вы писали:

__>Здравствуйте, sergey2b, Вы писали:

S>>а что сейчас по вашему сейчас актуально в США (ML скажем 10 вакансий в неделю в MA, зачастую меньше, с учетом что здесь несколько топ университетов это не о чем)
__>русских часто берут на С++, потому что больше никто его не знает
__>тут я бы сказал скорее нужен правильный менталитет, чем знание каких-то фреймворков. русские известны тем, что любят ходить и громко ругаться, а это дико тут. а если уметь общаться тактично, есть опыт проектирования с нуля на нескольких языках, опыт контроля качества и так далее, знание чего-то более современного типа питона, ml, может быть опыт работы в каких-то областях типа секьюрити, то, в общем, работы полно
__>ну и по резюме хорошо, чтобы было видно чем человек вообще хочет по жизни заниматься


я получил GC и уволился с работы тк был контрактором (и после 2.5 года вообще без отпуска у меня крыша потекла)
мне 47 лет,
последнии 8 лет в США писал на Си и С++
сейчас происходи, что то странное меня не приглашают на очное собеседования после тел интервью
я сам себе это объясняю, что последнии годы занимался всякой херью, мной затыкали дыры и получился программист не очем

до перезда я занимался секьюрети с некоторыми успехами на то время

денег у меня на 2 месяца жиизни
и я мооглу вложить это время либо
восстановить зания в секюрети
углубленно изучить программирование сетевых вещей
написание драйверов под linux

как последний шанс стать java junior, тк в MA на одну вакснияю реалльно больше 50 желающих и компании перебирают кандидатов
Re[5]: Связка C/C++ и WinAPI - ещё актуальна?
От: __kot2  
Дата: 23.11.19 17:34
Оценка: 9 (2) +2
Здравствуйте, sergey2b, Вы писали:
S>я получил GC и уволился с работы тк был контрактором (и после 2.5 года вообще без отпуска у меня крыша потекла)
S>мне 47 лет,
S>последнии 8 лет в США писал на Си и С++
S>сейчас происходи, что то странное меня не приглашают на очное собеседования после тел интервью
S>я сам себе это объясняю, что последнии годы занимался всякой херью, мной затыкали дыры и получился программист не очем
однажды, когда мы собеседовали похожего чувака, после разговора мой куда более опытный коллега, сказал: к такому возрасту и с таким опытом у человека должны быть какие-то уже существенные достижения. если их нет, то он из тех, кто приходит в офис греться у батареи и досиживать до пенсии.

чисто теоретически могу сказать, что интерес к жизни, наверное, может показать какой-то свой собственный проект

S>денег у меня на 2 месяца жиизни

мало времени. я бы просто подавался тогда везде и всюду. удаленная работа или так, контракт, без разницы где, может быть имеет смысл сунуться в более крупные места типа Нью-Йорка

S>и я мооглу вложить это время либо

S>восстановить зания в секюрети
S>углубленно изучить программирование сетевых вещей
S>написание драйверов под linux
люди обычно не читают резюме, я не думаю, что на это что-то повлияет, если даже на очку попать не получается

S>как последний шанс стать java junior, тк в MA на одну вакснияю реалльно больше 50 желающих и компании перебирают кандидатов

навряд ли. джуниор это в первую очередь человек без своего мнения, а в 47 лет это сложно
Re[6]: Связка C/C++ и WinAPI - ещё актуальна?
От: sergey2b ЮАР  
Дата: 23.11.19 17:46
Оценка: +1
Здравствуйте, __kot2, Вы писали:

__>Здравствуйте, sergey2b, Вы писали:

S>>я получил GC и уволился с работы тк был контрактором (и после 2.5 года вообще без отпуска у меня крыша потекла)
S>>мне 47 лет,
S>>последнии 8 лет в США писал на Си и С++
S>>сейчас происходи, что то странное меня не приглашают на очное собеседования после тел интервью
S>>я сам себе это объясняю, что последнии годы занимался всякой херью, мной затыкали дыры и получился программист не очем
__>однажды, когда мы собеседовали похожего чувака, после разговора мой куда более опытный коллега, сказал: к такому возрасту и с таким опытом у человека должны быть какие-то уже существенные достижения. если их нет, то он из тех, кто приходит в офис греться у батареи и досиживать до пенсии.

сушественные достижения есть, но они мало инетерестны текущем работодателям, тк
технология умерла
я пили последнии 2.5 года внутренний проект который кроме данной компании не кому не нужен

__>чисто теоретически могу сказать, что интерес к жизни, наверное, может показать какой-то свой собственный проект


свои проекты есть, я их показываю
но они все были сделанны до 13 года

S>>денег у меня на 2 месяца жиизни

__>мало времени. я бы просто подавался тогда везде и всюду. удаленная работа или так, контракт, без разницы где, может быть имеет смысл сунуться в более крупные места типа Нью-Йорка

спасибо за мнение
но по факту — я уволился потому, что понял что мной как контрактором затыкают дыры, и этто не приносит денег и знания
а идти на любую работу сейчас, это сново попасть в такую же дыру, где после 10 часового дня уже особо нового не выучиш
Re[2]: Связка C/C++ и WinAPI - ещё актуальна?
От: a.v.v Россия  
Дата: 23.11.19 18:20
Оценка:
Здравствуйте, Shmj, Вы писали:

> Но и денег не шибко много


это ключевое
хотя конечно, кому то овощем просидеть всю жизнь и доставляет удовольствие, но сколько этих людей...
Re[7]: Связка C/C++ и WinAPI - ещё актуальна?
От: __kot2  
Дата: 24.11.19 00:56
Оценка: 5 (1)
Здравствуйте, sergey2b, Вы писали:
S>сушественные достижения есть, но они мало инетерестны текущем работодателям, тк
S>технология умерла
не ну если человек например скажет, что он много когда-то сделал для оберона, то почему бы его не взять на движок жабоскрипта?
взяли же того же разрабочика Эльбруса в Интел и неплохо так взяли.
главное, что человеку есть что рассказать о себе

S>я пили последнии 2.5 года внутренний проект который кроме данной компании не кому не нужен

у меня в микрософте так же было. но мое достижение — что я пинал огромную толпу индусов, заставляя их писать вменяемый код и мы построили-таки систему контроля качества над говнокодерами. это огромное достижение было. достижения они разные бывают.

S>свои проекты есть, я их показываю

S>но они все были сделанны до 13 года
я в одно время прямо ссылку на свой код на гитхабе кинул в профиль linkedin. не знаю, привлекло это кого-то или отпугнуло, но я лично по коду могу о человеке гораздо больше сделать выводов, чем о любом его собственном рассказе о себе

S>спасибо за мнение

S>но по факту — я уволился потому, что понял что мной как контрактором затыкают дыры, и этто не приносит денег и знания
S>а идти на любую работу сейчас, это сново попасть в такую же дыру, где после 10 часового дня уже особо нового не выучиш
не факт. самый удачный вариант — это рнайти небольшую компанию, которая никого кроме совсем тупых нанять не может и убедить их, что у вас и опыт есть и желание какого-то саморазвития. ну тут наверное надо будет показать опыт руководства кем-то
Re[13]: Связка C/C++ и WinAPI - ещё актуальна?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 24.11.19 04:17
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>И куда при этом девается WinAPI? Или Вы относите к WinAPI только функции, принимающие HWND/HDC?


Мы сейчас конкретно про GUI разговаривает, поэтому — да.

N>>Попробуй вывести в GDI картинку в несколько мегапикселей и на мышку сделать зум. И на Qt тоже самое.

ЕМ>С каких пор эта операция часто выполняемой, и оттого особо критичной к быстродействию?

Я не говорю, что она часто выполнима. Например, сделать просмотрщик фотографий. Суть в том, что при зуме мышью мало того, что будут тормоза, так ещё и картинка отстойно выглядеть.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.