• Как работает ZwMapViewOfSection?

    15432
    @15432
    Системный программист ^_^
    Почитайте про устройство Memory Management Unit (MMU), таблицы трансляции виртуальной памяти x86, TLB и так далее.

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

    mmapiospace / mmapviewofsection как раз настраивает таблицу трансляции памяти для текущего процесса нужным образом, чтобы вы могли получить доступ к памяти, которую вы хотите.

    А софт для прошивки биоса пишет в аппаратные регистры SPI контроллера на шине PCI Express, не в память. И это не особенность материнки, а скорее интерфейс к оборудованию. Похожим образом через чтение/запись работает большинство драйверов устройств
    Ответ написан
    Комментировать
  • Как использовать структуры данных на практике?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Программисты, будучи студентами на 1-2 курсе изучают алгоритмы и структуры данных (АСД) чтобы
    писать более эффективные программы. При этом задача использования DBMS им еще не ставиться.
    На этом этапе они учатся оптимизировать и понимать разницу между o(1), o(n^2), o(lon(n)) и т.п.
    алгоритмической сложностью. Сложность определяет, как будет работать выбранный алгоритм
    при очень резком (шквальном) росте исходных данных. И если ты это не учил, то ты сто процентов
    напишешь фигню и твой алгоритм никогда не завершиться, какой-бы мощностьи процессор у тебя
    ни стоял. И вот чтобы дать анализ такой ситуации, как раз и нужны знания АСД. А работа на пределе
    мощностей сегодня везде. Игры. Рендеринг 3д. Майнинг. Обучение языковых моделей.

    Работая с MySQL ты этого не видишь т.к. часть алгоритмов скрыта от тебя под фасадом SQL API.
    Но тебе и недоступны вышеперечисленные задачи. Их стек - шире чем тот что ты используешь.
    И если ты собираешся всю жизнь работать на PHP/MySQL то скорее всего АСД тебе действительно не
    нужны.
    Ответ написан
    9 комментариев
  • Как использовать структуры данных на практике?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Мысль совершенно правильная.

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

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

    Поэтому я бы рекомендовал их все равно изучать, но в качестве не основного, а факультативного материала.
    Ответ написан
    Комментировать
  • Как писать GUI на C?

    discipuli
    @discipuli
    Студент
    На данный момент самым интересным вариантом по вашим запросам является GTK.
    Приложение будет лёгкое и переносимое, и даже есть дизайнер для того что бы не писать гуй, да и внешний вид можно сделать очень минималистичным и приятным.

    SDL более для игр и подобных программ, WinAPI не даст переносимости.
    Ответ написан
    Комментировать
  • Теряются/бьются UDP пакеты на localhost, так и должно быть?

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

    MaKvc
    @MaKvc
    Отчаянный веб-разработчик
    Каждый будет советовать то, что ему ближе по духу. Я бы например использовал Qt. Если у вас есть временные рамки и недостаточно знаний и практики, можно взять Lazarus (Free Pascal). Да-да-да!!! Оно еще живое! Имеет кучу возможностей, огромную поддержку платформ, можно довольно быстро решить поставленную задачу.
    Ответ написан
    19 комментариев
  • Ошибка LNK2019: Qt C++. Как устранить?

    Нужно добавить линковку с User32.lib в файле проекта *.pro
    Ответ написан
    2 комментария
  • Как реализовать воксельную разрушаемость и на чем?

    TihironRrr
    @TihironRrr
    создаю игры, мечтаю освоить C#.
    Привет. Я не силен в программировании, и давно не запускал unity, но помню, что в нем есть встроенный компонент, который "скрепляет" два объекта, а при сильном(настраивается) столкновении, он "раскрепляет" эти объекты
    Ответ написан
    2 комментария
  • Как исправить ошибки QOpenGLShader: Unable to open file "shaders/vertexshader1.vsh" QOpenGLShader: Unable to open file "shaders/fragmentshader1.fsh"?

    Скорее всего проблемы с путями. Укажите полный путь к файлам vertexshader1.vsh, shaders/fragmentshader1.fsh
    Ответ написан
    Комментировать
  • Как добавить комплект android в qt?

    Zifix
    @Zifix Куратор тега Qt
    Barbatum
    Вам надо поставить ещё Android SDK, NDK, и в настройках QtCreator на соответствующей вкладке указать, что требуется. Читайте документацию.

    https://doc.qt.io/qt-5/android-getting-started.html
    https://doc.qt.io/qtcreator/creator-developing-and...
    Ответ написан
    1 комментарий
  • Как интегрировать нейронную сеть написанную на python в приложение написанное на c++ qt?

    выведите результат в питоне через print и получите его в приложении так:

    QProcess process;
    process.start("python", QStringList() << "путь_к_файлу.py");
    process.waitForFinished();
    QString result(process.readAllStandardOutput());
    // или если текст на русском
    // QString result = QString::fromLocal8Bit(process.readAllStandardOutput()));
    Ответ написан
    Комментировать
  • Как сделать свой REST API?

    2ord
    @2ord
    Проще всего начать с автогенерации кода по спецификации OpenAPI (swagger).
    Редактор спецификации онлайн: https://editor.swagger.io/
    Ответ написан
    Комментировать