Обновить
9
Эрик Замабувараев-Ёмолкуу@Mabu

BASIC программист

2
Подписчики
Отправить сообщение

В read-only полях курсор и должен мигать, и должно быть выделение текста, иначе как оттуда выделенное скопировать в буфер

Интересно, а кто‐нибудь вводит эти команды вручную? В то время как любая IDE в 2026 году позволяет манипулировать системой контроля версий щелчками мыши и в удобном виде.

Но ведь всегда можно было в прототипе функции указать тип вызова. Иначе нельзя было бы вызывать WinAPI из си или паскаля.

Есть какой‐нибудь минималистичный пример, который демонстрирует проблему?

COM тут ни при чём. Циклов обработки сообщений в программе может быть несколько. Второй можно сделать в явном виде или неявно через модальные диалоги (MessageBox, DialogBoxParam). Это работает без всякого COM. В документации по оконным процедурам WndProc сказано, что процедура должна быть реентерабельной (reentrant — повторно входимой). Это требование связано с особенностями обработки сообщений в Windows, где одна и та же процедура может вызываться несколько раз для обработки разных сообщений, поступающих в систему.

Accessibility на нуле: NVDA не озвучивает текст под курсором.

Похоже что Accessibility нормально работает только в WinAPI.

Виртуальную карту можно создать за одно нажатие, и уничтожить за одно нажатие. Страх засветки такой карты необоснован.

А вы не сильно верьте в то, что написала корпорация Микрософт внизу функций.

Например, берём такую функцию как CreateWindowExA — там нет упоминания Win95, хотя всем очевидно что в Win95 такая функция есть. Похоже, что могущественная корпорация вычищает упоминание о старых системах.

Не стоит доверять словам «Minimum supported client» на современном сайте, нужно или самостоятельно проверять наличие функции в библиотеке, или достать старые SDK.

Использование ключевых слов удлинило бы программу, сделав её набор медленнее

Я очень надеюсь, что вы с пользой потратили эти сэкономленные 100 миллисекунд?

Выделение памяти разного размера бывает. Например, под буфер 500 мегабайт памяти может не быть, а под объект в 10 килобайт будет.

Или сейчас памяти недостаточно, а потом один из клиентов отключился, память освободилась — и теперь памяти стало хватать.

Неправильно думать что однажды получив ошибку выделения памяти мы будем получать её всегда. Не хватает памяти — это преходящее явление.

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

Это же рай для злоумышленника. Из UserMode можно уничтожить систему.

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

Сервер как минимум продолжает обслуживать текущих клиентов. Это полезно.

Нет, упасть — это очень плохая идея. Сервер не должен падать под нагрузкой.

Это приведёт к созданию другого объекта, а не оригинального. И если кто‐то, держащий ссылку на оригинал, изменит его, это не отразится на копии.

А если функция возвращает объект, который должен быть сохранён в дереве или графе, и используется в нескольких местах. Кто должен удалить объект? «Тот кто создал — тот и удаляет», то есть та самая функция CreateObject? Я даже не представляю какова должна быть сигнатура функции CreateObject, которая одновременно и возвращает объект, и применяется для удаления, вводя в заблуждение одним своим названием.

Конечно пропитаются. Макароны мягкие становятся от того, что в них вода попадает.

RSS не масштабируется

RSS это просто XML‐файл на диске, он не может масштабироваться по определению.

сервис должен выдерживать нагрузку около 1000 запросов в секунду!
популярный сервис с 1 млн. подписчиков

Ваш вебсервер не может держать 1000 соединений — смените вебсервер.

Если на вас вебсервер зайдёт весь этот миллион подписчиков чтобы посмотреть страницу index.html, вы тоже обвините язык разметки гипертекста, что он не масштабируется?

Вы меня простите, но зачем в каждый заголовок добавлять визуальный мусор из символа «▍»?

Насколько я помню множественное наследование в С++ было разрешено

Двойное наследование — это когда от одного и того же интерфейса дважды наследуешься. В C++ это невозможно. Поэтому приходится переименовывать IUnknown, чтобы иметь две VTable с одинаковыми методами.

можно считать что вы согласились хотя бы с тем, что делегирование возможно?

В описанном вами варианте — нет. Вы пишете, что в QueryInterface можно возвращать какой хочу интерфейс, это не так. Вы можете возвращать только те интерфейсы, от которых унаследованы, а если хотите возвращать чужие интерфейсы, то вам необходимо создать агрегат, о чём в вашей статье не сказано.

1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Красноярск, Красноярский край, Россия
Дата рождения
Зарегистрирован
Активность