Pull to refresh

Comments 11

А в чем сакральный смысл применения двух уже практически неиспользуемых технологий WinAPI и asm в связке?

Как это WinAPI не используемая? Что, все используемые не поверх нее построены?

Вторя уже ответившему, многие десктопные фреймворки можно "хакать" просто влезая с уровня WinApi. Получаешь дескриптор окна, и декорируешь функцию обработчик своей оберткой. Хук так называемый.

Насколько я могу судить GUI строится на кастомных контролах фреймворка, использующих свою отрисовку. Так что да, можно получить дескриптор окна, но вот толку от него мало, ибо какие сообщения ловить и как их обрабатывать не очень понятно, в отличии от стандартных контролов, которые документированы, но в чистом виде уже практически не встречаются, поскольку выглядят устаревше.

P.S. Сам разрабатываю небольшой проект на WinAPI и С.

Так декоратор делает, что нужно, а остальное передается на обработку.

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

Конечно подводных в таких вещах хватает, я ни в коем случае не про хорошие практики, но имеют место быть, под час хорошо себя показывают.

Как сразу молодостью повеяло! Общага, виновс икспи, жена ещё не жена, лабы-курсачи, вот это всё, ммм...

А можно пояснить зачем эта статья?
Я могу понять зачем нужно изучать ассемблер х86 (не для обучения ассемблеру и архитектуре компьютера, разумеется). С дальнейшей специализацией на драйверах, сверхэффективных вычислениях, компиляторах и прочем низком уровне.
Я могу понять зачем изучать основы winapi (вот тут наоборот — только для освоения низкого уровня). С дальнейшим переходом на современные графические библиотеки вроде хотя бы gtk, а может sdl если нужно просто создать окно.
Но эти задачи противоположны. На winapi-gui вы не будете писать драйвер или компилятор. На ассемблере вы не будете писать программу с развесистым GUI. Бывают, конечно, любители ненормального программирования вроде разработчиков Колибри, но их мало и для них это хобби.
Оконные WinAPI-шные процедуры писать на ассемблере (с синтаксическим сахаром) чуть ли не легче чем на Це. Нет битвы за соответствие типов, калькуляторкомпилятор не ругается на каждый неаккуратный чих. Та же вижуалстудио тянет через библиотеки в простое оконное приложение кучу всякой всячины, типа всех этих Redistributable Packages (ну простое винапи, зачем?) или _security_check_cookie (а я их не просил подключать).

COKPOWEHEU Уважаемый, пока "профи" и "знатоки" предлагали всем классический подход - прикрутить либы и т.д. на Асме/Си для AVR, самому спаять программатор, нарисовать и собрать схему на рассыпухе, тем временем родился Ардуино для простолюдинов и что Вы можете возразить этому явлению?! Оно есть и кому-то нужно!

У ардуины хотя бы ниша понятна — «контроллеры для домохозяек».
А тут вроде бы низкий уровень — ассемблер и винапи, то есть о непрофессионалах речь не идет. Отсюда и вопрос: для кого эта статья?
Вот в этой книжке всё это, помнится, было.

image
Sign up to leave a comment.

Articles