Задать вопрос
  • Как сделать так чтобы дополнительная скорость интернета для одного сайта распространялась на остальные?

    @res2001
    sirberwulf,
    В моем провайдере работают как раз дураки

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

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

    @res2001
    Еще можно попытаться проковырять дырку в своем NATе с помощью UPnP.
  • Для чего нужны спецификаторы в C?

    @res2001
    Это такие азы, что об этом написано в любой книжке по Си. И документации полно в интернете.
    https://en.cppreference.com/w/c/io/fprintf
  • Возможно ли автоматическое добавление переменной компилятором в namespace?

    @res2001
    dominy,
    моги ли я както отделить две переменные с одинаковым названием но разными типами.

    Ну и делайте как задумали. Одна переменная в одном namespace, другая в другом.

    Но в целом, если обе переменные описывают с разных сторон одну и ту же сущность, то давать переменным одинаковые имена это плохая идея. Сделайте класс/структуру, содержащую оба поля с разными именами.
    struct EntitiesCount_s {
      EntitiesCount_s() :
          adr(processManager.getModuleBaseAddress((WCHAR*)L"GameAssembly.dll")),
          val(processManager.readMemory<int>(adr))
      {};
      uintptr_t adr;
      int val;
    } EntitiesCount;
  • Определить что пришло на сервер - пакет или сегмент (udp/tcp)?

    @res2001
    BadCats,
    но я думал, что порт независим от протокола и если верить Википедии

    Вы не правильно интерпретировали вики. Порты как раз строго привязаны к протоколу (TCP или UDP).
    Порты есть и у UDP и у TCP. Но это независимые множества портов. Ничего не мешает одной программе открыть порт с одним числовым номером как для UDP так и для TCP и это будут разные порты и разные открытые сокеты. Именно этот факт отражен в вики, где указано одно числовое значение порта для обоих протоколов. Вы можете делать точно так же.
  • Не работает RDP после перезагрузки сервера. Как исправить?

    @res2001
    не может подключиться

    Если есть какие-то ошибки, которые выдаются при попытке подключения, то их то же не плохо было бы увидеть.
  • Сломал терминал командой echo, как восстановить?

    @res2001
    Если ты покажешь исходники, то кто-нибудь сможет подсказать.
  • Какие есть библиотеки для запуска ELF и .so файлов под Windows?

    @res2001
    Думаю, так это работать не будет. И в обратную сторону то же не будет.
    Вы не сможете использовать в приложении под одну платформу библиотеки, написанные под другую платформу.
  • Пишу кейлоггер на c++ и встретился с ошибками. Как их пофиксить?

    @res2001
    AramBaram, Это не значит, что совет не правильный. Разбирайтесь с ошибками дальше.

    Вообще в MSVC можно использовать тип TCHAR. В зависимости от настройки проекта он будет принимать значение либо char, либо wchar_t. Так же все текстовые константы заворачивать в
    TEXT("это константа")
    Это автоматически преобразует константу либо в char, либо в wchar_t (так же как с TCHARом).
    В свойствах проекта есть настройка, что-то типа "использовать Unicode" ... не помню как она точно звучит. Вот в зависимости от этой настройки и работают вышеописанные макросы.
    Рекомендую всегда использовать Unicode.
  • Реализация memcmp без библиотек?

    @res2001
    Есть какие-то проблемы скопировать память заданного размера из одного заданного адреса в другой? Тогда возьмите учебник по Си, почитайте про указатели, адресную арифметику.
  • Как реализовать скриптинг и компиляцию игр в игровом движке с использованием c++?

    @res2001
    Anthony228357, В любом случае движок не должен ничего знать о вышестоящем уровне (хоть в первом, хоть в третьем варианте), это вообще никак с компоновкой не связано. Если вы закладываетесь на то, что движок что-то там предполагает о пользовательском коде (или будет его анализировать каким-то образом), то это гиблое дело. Движку этого не нужно.
    Пользовательский код будет знать об интерфейсе движка через файлы заголовков, где вся нужная информация для вызова методов и функций движка будет. Дальше вступают в действие наследование и виртуальные методы.

    Разве есть какой-то способ вызывать функции в файлах с описанием класса?

    Функции будут вызываться тогда, когда программа уже будет собрана и все зависимости удовлетворены. Пока вы пишите код и для компиляции достаточно информации (содержащейся в заголовках) о имени, типе возвращаемого значения и количестве и типе аргументов функций и методов.
    При компиляции любых программ на С/С++, состоящих из нескольких файлов исходного кода, компилятор ВСЕГДА компилирует файлы по отдельности. При компиляции каждого конкретного файла компилятор ничего не знает о других файлах исходного кода и он в них не заглядывает. Это не касается файлов заголовков, которые подключаются внутри компилируемого файла исходного кода, их компилятор, конечно включает в сборку.
    Только на этапе линковки полученные объектные файлы объединяются в один исполняемый файл, вот тогда линковщик и должен разрешить все зависимости. В случае второго варианта линковщик разрешит зависимости от движка, т.к. статическая библиотека движка будет участвовать в линковке. Точно так же линковщик найдет main() в статической библиотеке движка и успешно будет ее использовать.
  • Не понимаю почему не делается пуш в гит?

    @res2001
    Ogurchik-007, Написано же "Permission denied" - у вас нет прав на эту операцию. Обращайтесь в вашу школу, чтоб вам дали права, к обращению приложите этот лог.
  • Как избавиться от червя или что это за штука?

    @res2001
    Оба GUIDа из отчета связаны с Edge. Попробуйте удалить его из системы вместе с IE, если он у вас вдруг еще остался.
  • Как реализовать скриптинг и компиляцию игр в игровом движке с использованием c++?

    @res2001
    Anthony228357, Какая схема вам больше по душе ту и можно организовать.
    1. Вы можете поставлять свой движок в виде исходного кода. Тогда просто добавляете пользовательский код в сборку и можно собрать монолитный исполняемый файл или динамическую библиотеку.
    2. Если движок не хотите поставлять в исходном коде, то можете поставлять его в виде статической библиотеки и точно так же компоновать с пользовательским кодом, только движок в сборку будет добавляться на этапе линковки.
    3. Движок в виде исполняемого файла или dll. Пользовательский код собирается в одну или несколько dll. Внутри движка реализована схема загрузки пользовательских библиотек (add-on/plugin).
  • Как реализовать скриптинг и компиляцию игр в игровом движке с использованием c++?

    @res2001
    Я далек от игроделанья, но у вас на лицо просто иерархия классов с виртуальными методами.
    Пользовательский скрипт для реализации своего функционала должен наследовать какой-то ваш класс и переопределять нужные ему методы. В реализации базового класса должна быть реализация базового функционала этих методов.
    Ваш движок вызывает в нужных местах виртуальные методы базового класса, тем самым вызывается пользовательская реализация этих виртуальных методов.
    Таким образом, не нужно парсить пользовательские скрипты - пользователь просто использует готовую иерархию классов вашего движка.

    Классы могут импортироваться из DLL. Запихивать пользовательские скрипты в одну или несколько DLL - в принципе особой роли не играет. С одной DLL работать проще. Можно вообще не использовать DLL, а собирать один готовый исполняемый файл. Это все на ваше усмотрение, при правильной реализации все варианты рабочие.
  • Как переписать данный кусок кода под BASH?

    @res2001
    Покажите хотя бы ваши попытки реализации.
    Что вам конкретно не понятно?
    Bash script гораздо более гибкий язык, чем bat. К тому же в никсах много продвинутых инструментов командной строки (sed, grep, awk, find, ...), которые можно использовать из bash скрипта.

    В вашем случае циклы можно переписать примерно так:
    for var in assets lib libs unknown
    do
      echo $var
    done

    for var in $(sfk list ...)
    do
      echo " $var"
    done

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

    @res2001
    Евгений Шатунов,
    Поэтому из 9 сложений половина отклонит результат в большую сторону, а вторая половина - в меньшую. Сам же результат так и останется в пределах одного эпсилон от идеального значения.

    Если операнды представлены точными числами, то вы правы - погрешность будет в пределах epsilon.
    Но операнды из примера автора уже содержат в себе погрешность (в каждом по epsilon). Вот и получится 10*epsilon для 10 сложений (это для нашего конкретного примера) - просто идеально сложили 10 операндов содержащих погрешность.
    А теперь к этим 10*epsilon добавьте еще погрешность результата (предположим, что погрешности промежуточных результатов компенсировались и осталась только погрешность последнего вычисления). Будет 11*epsilon в худшем случае.

    Помнится как-то была у меня задача, очень похожая на пример автора, где в цикле надо было что-то посчитать. Один из множителей в формуле был коэффициент, зависящий от индекса цикла, т.е. примерно так: f = i * const, где i - целый индекс цикла, const - константное число с плавающей точкой. Дальше f использовалась как множитель в формуле.
    Сначала в целях некоторой оптимизации я считал f так: f += const - сложение чисел с плавающей точкой работает быстрее, чем умножение.
    В итоге формула давала достаточно существенную погрешность, с которой нельзя было мирится.
    Когда я заменил вычисление f через умножение, то существенная погрешность исчезла.
    Просто много сложений в конечном счете накапливают погрешность и через какое-то количество итераций погрешность начинает выходить за рамки допустимого. А при умножении погрешность минимальная и не копится.
    В моем примере расчет велся во float, поэтому существенная погрешность проявлялась достаточно быстро.
  • Почему значение типа плавающей точки уменьшается?

    @res2001
    Евгений Шатунов, versidue,
    Результат твоих 10 сложений будет где-то близко к 1.0 в пределах отклонения, не дальше чем

    Думаю, что не дальше чем epsilon*10, т.к. каждое сложение будет добавлять свою ошибку.
    Но учитывая, что ошибка может быть как в плюс, так и в минус, то суммарная ошибка стремится к нулю, но, конечно, нулем никогда не будет (разве что сильно повезет).