Задать вопрос
Ответы пользователя по тегу C++
  • Возможно ли реализовать TCP на Delphi?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    В принципе, PCAP перенесли и в Windows (ключевое слово - WinPCAP), так что можно поэкспериментировать и в Windows.
    В принципе, из Delphi можно вызывать функции API, написанные на C (С++ тут избыточен).
    Вопрос только, как перенести описания функций в Delphi.
    Почти наверняка это кто-то когда-то уже сделал, возможно - не единожды. Поищите по ключевым словам pcap и Delphi. Я, например, сразу наткнулся на ссылку https://github.com/den-kozlov/Snoop (но не спрашивайте меня, я туда даже не заглядывал).
    PS Согласно старой (времен Win7/Win2K8R2) документации MS ограничения на работу raw socket с TCP были только на клиентских ОС, на серверные ОС они не распространялись (но надо было быть членом группы Админнистраторы). Может быть, это вам поможет.

    А вообще, по жизни я согласен с предыдущим отвечающим Сергей Сахаров: не занимайтесь ерундой в образовательных целях.
    Ответ написан
  • Как исправить ошибку vector subscript out of range?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Как правильно замтили отвечашие ранее, такие вещи надо искать в отладчике, а при чтении кода можно, разве что, заметить подозрительные места. В частности, я вижу подозрительное место в функции buildFanoTable - вот этот оператор:
    if (abs(diff1 - diff2) < abs(diff1 - diff2 - frequencies[mid + 1].frequency)) {
            mid++;
            diff += frequencies[mid].frequency;
        }

    В предыдущем цикле mid может дойти до end-1, и обращение по индексу mid+1 будет как раз выходом за границу вектора.
    Ответ написан
    Комментировать
  • Как отлавливать курсор при наведении на дочернее окно?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Подключите с помощью subclassing свою оконную процедуру к окну кнопки и отслеживайте WM_MOUSEMOVE в ней.

    PS Поскольку subclassing для новой версии comctl32 улучшен, рекомендую также заглянуть сюда
    Ответ написан
    3 комментария
  • Как определить принадлежность точки к плоскости?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    У вас нет проверки условий для диагональных границ области: y<=x при x<=1 и abs(y)<=x-1 при x>=1. Добавляйте, проверяйте и сдавайте решение.
    Ответ написан
    1 комментарий
  • Как именно должжна работать функция SetCursor?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Ну, не так может быть то, что курсор назначаен на уровне класса окна (задается при регистрации класса приложением, но можно изменить и после) - тогда при движении мыши система заменяет ваш курсор на зарегистрированный. Подробности читать тут.
    Ответ написан
    Комментировать
  • Издержки полиморфизма или неправильный дизайн?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Простейший способ решить вашу проблему, не нарушая вашу архитектуру - сделать корневой класс иерархии "полуабстрактным": сделать его виртуальные методы не чистыми виртуальными, а реализовать как те самые заглушки, которые вы реализуете в каждом классе-потомке.

    PS Но лично мне не нравится сама такая архитектура: в ней получается, что использующая иерархию этих классов программа должна знать все типы, поддерживаемые этой иерархией, а это может вызвать проблемы с расширяемостью. Впрочем, выбор архитектуры - это вопрос всегда конкретный, завязанный на решение конкретной задачи.
    Ответ написан
    Комментировать
  • Как реализовать расширяемость модулей с использованием интерфейсов?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Я бы в такой задаче попробовал сделать архитектуру, основываясь на виртуальных базовых классах - т.е. множественном наследовании, при котором многократно наследуемый класс везде, где он возникает, определяется как виртуальный базовый. Как известно, если класс (напрямую или через своих предков) многкратно наследует некий класс как виртуальный, то при содании экземпляра такого класса создается только один экземплярэтого базового класса.
    В частности, с помощью виртуального абстрактного базового класса, содержащего только чистые виртуальные методы, вполне можно сделать аналог интерфейсов, существующих в других языках: Java, C# и пр. - и пользоваться в C++ архитектурными наработками, сделанными с использованием интерфейсов.
    Ответ написан
    Комментировать